これは本の演習です。問題はこのコードの出力です。プリプロセッサ後のCコード
このコードは、常に "N is undefined"を表示しますが、その理由はわかりません。コマンド "#undef N"は、関数fの後にあります。次に、出力が常に "N is undefined"の理由は何ですか?
#define N 100
void f(void);
int main(void)
{
f();
#ifdef N
#undef N
#endif
return 0;
}
void f(void)
{
#if defined(N)
printf("N is %d\n", N);
#else
printf("N is undefined\n");
#endif
}