C语言定义了如下的整型类型(unsigned类型没列出): char short int long long long 但C语言没有规定了他们之间的关系为: sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long) 现代UNIX系统不是32位就是64位(未来也许还有128位的),我总结的经验值是: sizeof(char) == 1 sizeof(short) == 2 sizeof(int) == 4 sizeof(long) == 4(32位)或8(64位) sizeof(long long) == 8 在我用过的UNIX系统(GNU Linux、SUN Solaris、IBM AIX、HP-UX、MAC OSX)都是这样,只要不是嵌入式开发,大部分都是上面的情况。 当然,POSIX下面有更好的方法去定义一个固定长度的整型,在stdint.h里面就有,大概可以分成这几类: 固定长度整型: int8_t / uint8_t int16_t / uint16_t int32_t / uint32_t int64_t / uint64_t 类型中的数字就是该类型的位数,前缀u代表unsigned
规定了最小长度的整型: int_lease8_t / uint_least8_t int_lease16_t / uint_least16_t int_lease32_t / uint_least32_t int_lease64_t / uint_least64_t int_fast8_t /
编写POSIX可移植C程序的一些经验总结(1)——整型类型
最新推荐文章于 2024-03-07 00:50:36 发布