- #define
- 我们利用了相邻的字符串被自动连接成一个字符串这个特性
- 不要在宏定义的末尾加上分号是一个良好的coding习惯,因为这个有些时候会带来一些问题,如:
- 若在宏定义末尾加上分号,显然 if 后面会被预处理成两条语句:printf 语句 和 一条空语句; 这显然会带来问题
- 宏
- 我们来看几个 宏定义 的例子,来说明使用 宏定义 时候什么是好的 coding 习惯:
- 宏与函数
- 还有一些任务根本无法用函数实现,如下面这个例子:这个宏的第二个参数是一个类型,它无法作为函数的参数进行传递:
- 带副作用的宏参数,下面举两个例子来加以理解:
- #undef
- 条件编译
- 其它指令
- 遇到了再来补充