在C语言中,会遇到#和##符号,下面介绍其用途(该博文主要参考网友代码)
#:是将其后面的宏参数进行字符串化操作(Stringizing operator),即在它引用的宏变量的左右各加上一个双引号。
如下图所示代码及运行结果
##:拼接符号(Token-pasting operator),如:
整个语句变成了
printf("token""9"" = %d", token9 );
在C语言中字符串中的二个相连的双引号会被自动忽略,于是上句等同于
printf("token9= %d", token9);。
即输出token9 = 100
2016-9-14补充
在宏定义中,只能用#或##两个字符中的一个,无法一起使用
#符号易读性较差,尽量少使用