为什么 int 数据类型的大小在 16位和 32位架构中有所不同,而其他原始数据类型< / strong>在两种架构中都有相同的大小?
答案 0 :(得分:6)
常见的花园种类整数类型(int
,long
,short
等)的大小不是由C标准确定的,唯一的要求是它们具有最小值容量以及它们的相对大小遵循相等或更好的规则(例如,long
至少与int
一样大。
这是因为(1)原始实现只使用了最自然的体系结构; (2)标准化委员会的最初授权是编纂现有的实践,而不是发明新的语言。
如果想要固定大小的整数类型,请使用intN_t
样式类型,例如int16_t
或uint32_t
。这些是为了这个目的而引入的。