奇妙なマクロ問題
#include <stdio.h>
#define f(i) {printf("%d",i);}
void main()
{
f(5);
}
これは5を印刷します.
そしてプログラムを修正します.
#include <stdio.h>
#define printf_ex(x) printf x
void main()
{
f(5);
}
これは意外にも間違いがなくて、また5を印刷します;
#include <stdio.h>
#define printf_ex(x) printf x
void main()
{
f(5);
printf_ex(8);
}
この時間違いが発生します.私のコンパイラはvc 6です.これは何の問題ですか.プリプロセッサに関連していますか?やはりコンパイラの問題です.