今までだと _P
のような、ユーザコードでも使われがちなシンボル (_[A-Z]
) をマクロとして、グローバルなヘッダで定義してしまっていたため、コンパイル時に展開されて、文法エラーになるようなことが多々あった。
この修正でこの問題が解消されるようでありがたい。
#include <ctype.h> void func() { int _P; }
$ gcc -c ctype.c In file included from ctype.c:1: ctype.c: In function ‘func’: ctype.c:5:13: error: expected identifier or ‘(’ before numeric constant 5 | int _P; | ^~