1 # 和 ##
1.1 #
#:把参数插入到字符串中。
#a -> “a”
#define PRINT(x,format)\
printf("the value of " #x " is " #format" \n",x)
//printf("the value of " "x" " is" "format" "\n",x)
int a = 10;
PRINT(a,"%d");
运行结果:
还有一个技巧,可以通过 # 将一个参数转变为字符串
#define STRING(x) (#x)
1.2 ##
编译器会将使用 ‘##’ 连接的两个相邻字符串自动拼接成一个字符串。
#define CAT(x,y) ((x)##(y))
int num5 = 10;
CAT(num,5);//=num5