#也是预处理?是的,你可以这么认为。那怎么用它呢?别急,先看下面例子
#defineSQR(x)
printf("Thesquareof x
is%d.\n",((x)*(x)));如果这样使用宏: SQR(8);则输出为:
Thesquareof x is 64.
注意到没有,引号中的字符
x被当作普通文本来处理,而不是被当作一个可以被替换的语言符号。
假如你确实希望在字符串中包含宏参数,那我们就可以使用 “#”,它可以把语言符号转
化为字符串。上面的例子改一改: #defineSQR(x)
printf("Thesquareof "#x"
is%d.\n",((x)*(x)));再使用: SQR(8);则输出的是:
Thesquareof 8 is64.
很简单吧?相信你现在已经明白#号的使用方法了。
##预算符
和#运算符一样,##运算符可以用于宏函数的替换部分。这个运算符把两个语言符号组