#,##
# 和 ## 操作符是和#define宏使用的. 使用# 使在#后的首个参数返回为一个带引号的字符串. 例如, 命令
#define to_string( s ) # s
将会使编译器把以下命令
cout << to_string( Hello World! ) << endl;
理解为
cout << "Hello World!" << endl;
使用##连结##前后的内容. 例如, 命令
#define concatenate( x, y ) x ## y
...
int xy = 10;
...
将会使编译器把
cout << concatenate( x, y ) << endl;
解释为
cout << xy << endl;
理所当然,将会在标准输出处显示'10'.
预定义变量
语法: __LINE__ __FILE__ __DATE__ __TIME__ _cplusplus __STDC__ |
下列参数在不同的编译器可能会有所不同, 但是一般是可用的:
- __LINE__ 和 __FILE__ 变量表示正在处理的当前行和当前文件.
- __DATE__ 变量表示当前日期,格式为month/day/year(月/日/年).
- __TIME__ 变量描述当前的时间,格式为hour:minute:second(时:分:秒).
- _cplusplus 变量只在编译一个C++程序时定义.
- __STDC__ 变量在编译一个C程序时定义,编译C++时也有可能定义.