##宏,用于连接参数
#define LINK_ME(a,b,c) a##_##b##_##c##
LINK_ME(you,are,foo) 结果为 you_are_foo
#@将其后面的宏参数进行字符化。
#define TO_CHAR(x) #@x
char a = TO_CHAR(b); //a = 'b';
#加参数,字符串化参数
#define WARN_IF(EXP) /
do{ if (EXP) /
fprintf(stderr, "Warning: " #EXP "/n"); } /
while(0);
WARN_IF(bYou == bMe) 结果为
do{ if (bYou == bMe) /
fprintf(stderr, "Warning: " "bYou == bMe" "/n"); } /
while(0);