C++ 预处理器
C++ 支持如下的预处理指令:#include、#define、#if、#else、#line等。
#define 宏定义 指令的一般形式为:
#define macro-name replacement-text
函数宏
可以使用#define来定义一个带有参数的宏。
#define MIN(a, b) ((a) < (b)) ? a: b)
条件编译
#ifndef NULL
#define NULL 0
#endif
# 和 ## 预处理运算符
#运算符会把replacement-text令牌转换为用引号引起来的字符串。
#define MKSTR( x) #x
## 运算符用于链接两个令牌。
#define CONCAT(X, Y) X ## Y
c++ 中的预处理宏
C++提供了一些预定义宏:
__LINE__ 编译时包含当前行号
__FILE__ 编译时包含当前文件名
__DATE__ 包含一个形式为month/day/year的字符串,它表示把源文件转换为目标代码的日期
__TIME__ 包含一个形式为hour:minutes:second的字符串,它表示程序被编译的时间。
#line 指令告诉预处理器将编译器内部存储的行号和文件名更改为给定行号和文件名
printf("assertion error line %d, file(%s)\n", __LINE__, __FILE__);

浙公网安备 33010602011771号