10、预处理命令
1、宏定义
1、宏定义分为两种:不带参数的宏定义和带参数的宏定义。
2、不带参数的宏定义:#define 标识符 单词串
带参数的宏定义:#define 标识符(参数列表) 单词串
3、宏定义可以提高程序的可读性,便于调试,并且也提高了程序的可移植性。
4、可用 #undef 标识符 终止宏的作用域。
5、宏定义可以嵌套定义,但并不能递归定义。
6、宏定义一般以换行结束,不要用分号结束。
7、在定义带参数的宏时,宏名与圆括号之间不能有空白符。
8、在程序中凡是以#开始的语句行都是预处理命令行。
9、宏替换不占用运行时间,只占用编译时间。
10、可以把define定义为用户标识符,但不能把if定义为用户标识符。(define不是关键字)
2、文件包含
1、#include<包含文件名> 或#include"包含文件名"
3、条件编译
1、#if…[#elif…] [elif…]#endif if后面的条件必须是一个常量表达式。
2、#ifdef…[else…]#endif
3、#ifndef…[else…]#endif
4、条件编译与分支语句不能混为一谈。
- 条件编译是在预编译时处理,而条件语句则是在程序运行时处理。
- 条件编译中的条件不可以包含变量名,只能是常量表达式(通常包含宏名),可以不加括号;而条件语句的条件是条件表达式,可以包含变量或函数等,并且必须加括号。