# :字符串化操作符。该操作符与#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。