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的单例模式用到宏

  • 宏还能根据传入的参数生成字符串, 如下

     

posted @ 2020-12-13 23:21  zeroPatrick  阅读(89)  评论(0编辑  收藏  举报