宏的單行定義
#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 ; ) */
關鍵是要在每一個換行的時候加上一個"\"