宏的单行定义
#define A(x) T_##x
#define B(x) #@x
#define C(x) #x
我们假设:x=1,则有:
A(1)------〉T_1
B(1)------〉'1'
C(1)------〉"1"
##代表“连接”
#@代表“转为字符”
#代表 “转为字符串”
define的多行定义
define可以替代多行的代码,例如MFC中的宏定义(非常的经典)
#define MACRO(arg1, arg2) do { \
/* declarations */ \
stmt1; \
stmt2; \
/* ... */ \
} while(0) /* (no trailing ; ) */
关键是要在每一个换行的时候加上一个"\"