#也是预处理??是的
#define SQR(X) printf("the square of x is %d/n",((x)*(x)));
如果这样用此宏:
SQR(8);
则输出为: the square of x is 64
引号中的x被当作普通文本来处理 而不是当作一个可以被替换的语言符号.
假如你确定想在字符串包含宏参数,那我们就可以使用"#",它可以把语言符号转化为字符串,改上面的例子为:
#define SQR(X) printf("the square of "#x" is %d/n",((x)*(x)));
the square of 8 is 64