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
為什麼呢?