读书人

limits.h,该怎么解决

发布时间: 2012-03-08 13:30:13 作者: rapoo

limits.h
1.limits.h中的#if ('\x80' < 0)是什么意思啊 x80代表什么啊
2.#if !defined(__STRICT_ANSI__) && defined(__GNUC__) 这句什么意思
3.#define LONG_LONG_MAX 9223372036854775807LL 后面的LL代表什么
4.#define ULONG_LONG_MAX (2ULL * LONG_LONG_MAX + 1) 2ULL是什么意思

[解决办法]
第1个可能代表字符类型为有符号类型
如果字符类型为无符号类型,'0x80'为正数,'\x80' < 0不成立;如果为字符类型为有符号类型,那么'\x80'小于0,'\x80' < 0成立
[解决办法]
0x80的二进制是10000000
第一位是1 如果char是有符号 则会认为是小于0(第一位表示符号位,0代表正数,1代表负数)
如果是无符号型,则会认为是大于0(无符号型没有符号位 总是认为是大于0的数)

读书人网 >C语言

热点推荐