#define宏其实平时编程中用到比较普遍,但有几个使用方法比较特别,所以特地写下来。
1.前加##或后加##,将标记作为一个合法的标识符的一部分
如:#define A(x) T_##x
则:int A(1) = 10; 等效于 T_1 = 10;
2.前加#@,将标记符转换为相应的字符,仅对单一标记转换有效
如:#define B(x) #@x
则: B(a)即'a'
3.前加#,将标记转换为字符串
如:#define C(x) #x
则:C(1+1) 即"1+1"
4.定义多行宏,最后一行不能用斜杠
#define FUN(this, class)\
{\
int a = 10;\
}