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 */

と書いてあるので注意しましょう。私がバカなだけですけどね。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h