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

}

posted on 2011-03-24 11:45  ActiveChange  阅读(302)  评论(0编辑  收藏  举报

导航