- ベストアンサー
マクロの展開
#define A(str) str\n #define B(str) #str #define C(str) printf(B(A(str)); int main() { C(hello) } をプリプロセスすると入れ子になったマクロAが展開されずに printf("A(hello)"); となってしまいます。 printf("hello\n"); と展開されるようにするにはどうしたらいいでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
#define A(str) str\n #define B(str) #str #define C(str) printf(B(A(str)); int main() { C(hello) } をプリプロセスすると入れ子になったマクロAが展開されずに printf("A(hello)"); となってしまいます。 printf("hello\n"); と展開されるようにするにはどうしたらいいでしょうか? よろしくお願いします。
お礼
有難うございます。手元のgccではこの方法でうまくいきました^^。