underscore
みなさんご承知の通り、
・ Each name that contains a double underscore ("__") or begins with an underscore followed by an uppercase letter (lex.key) is reserved to the implementation for any use. ・ Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace.*
なのですが (アンスコで始めちゃダメ、どこだろうとアンスコ二つはダメ)、実際に
$ gcc -v Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs Thread model: posix gcc version 3.3 20030304 (Apple Computer, Inc. build 1495)
な環境では (MacOSX のわりとあたらしいやつ) 、 /usr/include/ctype.h に
/* * Backward compatibility */ #define _A _CTYPE_A /* Alpha */ #define _C _CTYPE_C /* Control */ #define _D _CTYPE_D /* Digit */ #define _G _CTYPE_G /* Graph */ #define _L _CTYPE_L /* Lower */ #define _P _CTYPE_P /* Punct */ #define _S _CTYPE_S /* Space */ #define _U _CTYPE_U /* Upper */ #define _X _CTYPE_X /* X digit */ #define _B _CTYPE_B /* Blank */ #define _R _CTYPE_R /* Print */ #define _I _CTYPE_I /* Ideogram */ #define _T _CTYPE_T /* Special */ #define _Q _CTYPE_Q /* Phonogram */
と書いてあるので注意しましょう。私がバカなだけですけどね。