define宏的特殊用法

#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;\

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

148 views 暂无评论