#ident "$Id: e202.c.html 187 2006-05-17 05:23:14Z ono.mki $" /*###4 [cc] 警告: BBB:e202: 標準Cではこの整定数をunsignedで処理します: 2147483648%%%*/ #include <stdio.h> #if 2147483648 < 0 static void e202() { printf("k&R %lx¥n",2147483648UL) ; } #else static void e202() { printf("ANSI %lx¥n",2147483648UL) ; } #endif
解説 2147483648は0x80000000 であり、 符号ビットの所がONです。 ANSIでは符号無しで処理し K&Rは 符号付きで処理します。 C-FAQ 1.1J C-FAQ 1.1E を参照して下さい。