C语言定义INT_MIN和INTMAX如下:
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)
为什么不直接定义INT_MIN为-2147483648呢?
如果你运行如下代码:
if (-2147483648 > 0)
printf(“TRUE”);
else
printf(“FALSE”);
你可能会发现令你意想不到的结果。这是为什么呢?
因为-2147483648不是一个数字,而是一个表达式:一个正值2147483648,前面有个操作符 - 。2147483648超过了int范围的最大正值。如果编译平台的long int类型比int的范围更大,编译器会自