预处理器操作符:#,#@,##

来源:互联网 发布:java课程设计报告 编辑:程序博客网 时间:2024/05/17 08:11
 

#:字符串化操作符。该操作符与#define宏一块使用。例如:
#define to_string(s) #s          
编译器将把
cout << to_string( Hello World! ) << endl;
转换为:
cout << "Hello World!" << endl;
其中,to_string可以是任意自定义的名称。
如果参数s中有多个连续的空格,则输出的结果与预想的则会有差别。

#@:字符化操作符。该操作符与#define宏一块使用。例如:
#define makechar(x) #@x
编译器将把
a = makechar(b);
转换为:
a = 'b';
参数x只能有一个字符,即使用单引号引起来的单个字符也是不行的(总共3个字符)。

##:结合操作符。该操作符与#define宏一块使用。例如:
#define concatenate(x,y) x##y
...
int xy = 10;
...         
编译器将把
cout << concatenate(x, y) << endl;
转换为
cout << xy << endl;
输出结果:10。

原创粉丝点击