Hi 我想请问一下
(1)
#define B(z) #z
char *string=B(HELLO);
void main()
{
printf("%s\n",string);
}
因为根据
C primer plus的说法,会形成有双引号的HELLO,展开如下:
char *string="HELLO"。
萤幕显示结果:HELLO
可是C primer plus有一个范例如下:
(2)
#define PSQR(x) printf("The square of " #x " ")
void main()
{
PSQRY(y);
}
萤幕显示结果:The square of y
问题:
#x 旁为啥会多一组双引号,形成" #x "。
如果不加双引号,结果就会是:
The square of #x
为什么呢?