>>794
以下のようなプログラムも問題なくコンパイルできるようになっている。

#define a "a"
#incluce <stdio.h>
int main() { puts(a); return 0; }

もし stdio.h など標準ライブラリ内の宣言に、たとえローカル変数であっても a という名前が
そのまま使われていた場合、ユーザーのマクロ定義の影響を受けてコンパイルできなくなってしまう。


これに対して、以下のように予約名を不正にユーザー定義しているプログラムの面倒を見てやる義理は無い。

#define __a "a"
#incluce <stdio.h>
int main() { puts(__a); return 0; }