《编写高质量代码:改善Objective-C程序的61个建议》——建议3:尽量使用const、enum来替换预处理#define
本节书摘来自华章出版社《编写高质量代码:改善Objective-C程序的61个建议》一 书中的第1章,第1.3节,作者:刘一道,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
建议3:尽量使用const、enum来替换预处理#define
#define定义了一个宏,在编译开始之前就会被替换。const只是对变量进行修饰,当试图去修改该变量时,编译器会报错。在一些场合里你只能用 #define,而不能用 const。理论上来说,const 不仅在运行时需要占用空间,而且还需要一个内存的引用;但从时间上来说,这是无关紧要的,编译器可能会对其进行优化。
const在编译和调试的时候比 #define 更友好。在大多数情况下,当你决定用哪一个时,这是你应该考虑的一个非常重要的点。
想象一下,下面这样一个应该使用 #define 而不是