const 与 #define
const int Month = 12;
#define PI 3.14
const 的优点:
1. 能够明确指定类型,define只是简单的字符串替换,没有类型检查。而const有对应的数据类型
2. 可以使用C++的作用域规则将定义限制在特定的函数或文件中
3. 可以将const用于更复杂的类型,数组、结构体等
#define是一条预编译指令, 编译器在预编译阶段会将所有使用到宏的地方简单地进行替换
对const的处理是在编译、运行阶段。
const不能重定义,#define可以通过#undef取消字符的定义。
#define可以用来防止头文件重复引用 或者 结构的重定义,而const不能,可以参看下面代码:
#ifndef CODE_ #define CODE_ //你的代码 #endif
宏(#define)能做到const不能办到的事.
-
宏能定义函数
-
OC的单例模式用到宏
-
宏还能根据传入的参数生成字符串, 如下