预处理
预处理格式要求
6/13/2016 11:17:27 PM
- 必须放在每行开头,因此在源文件中一行只能有一条预处理命令;
- 但是一条预处理指令可以放在多行,只需要在每行结尾添加 \ 即可。
宏定义
无参宏定义
宏定义不是声明或者语句,行末没有分号;
宏定义从定义处直到程序结束,如需提前结束,使用#undef来取消;
宏名在程序中使用双引号括起来,则预处理不替换;
对输出格式使用宏定义,可以减少麻烦;
带参宏定义
宏名和参数之间不能空格;
#define MAX(a,b) ((a)>(b)?(a):(b))
形参不分配内存空间;不用类型定义;
形参只是标识符,调用时实参可能是表达式,因此需要将形参用括号括起来,如1所示;
max = MAX((a+2), (b-3));
定义时,最好将整个宏定义式子用括号括起来;如1中所示。
加括号的目的是为了防止运算符的优先级导致意料之外的错误