The Preprocessor
14.1 预处理器的工作原理
预处理器的行为是由预处理指令控制的。 例如:
14.2 预处理指令
- 宏定义
- 文件包含
-
条件编译
-
指令都以#开始
14.3 宏定义
14.3.1 简单的宏/对象式宏
格式:
用#define
定义常量优点:
- 程序易读
- ~易于修改
14.3.2 带参数的宏/函数式宏
格式:
14.3.5 宏的通用属性
-
宏的替换列表可以包含对其他宏的调用
-
预处理器只会替换完整的记号,而不会替换记号的片断
也就是说拼接常量名并不会有预期影响
#define SIZE 256 int BUFFER_SIZE;
if (BUFFER_SIZE > SIZE)
puts("Error : SIZE exceeded");
//预处理后:
int BUFFER_SIZE;
if (BUFFER_SIZE > 256)
puts("Error: SIZE exceeded");
- 宏定义的作用范围通常到出现这个宏的文件末尾
- 宏不可以被定义两遍,除非新的定义与旧的定义是一样的
- 宏可以使用#undef 指令“取消定义”