e202.c

整定数をunsignedで処理
#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 を参照して下さい。