直到最近,我相信“长期”。和' int'是一回事。由于历史原因和桌面处理器都至少有32位(并且只有#34; dupe"因为只在32位机器上开发)。
阅读this,我发现,实际上,C标准将int类型定义为至少一个int16,而#39; long'应该至少是一个int32。
实际上在列表中
总是存在非空交叉点,因此无论编译器和平台选择何种实现,都会出现重复。
为什么标准委员会在char / short / int / long(或int_k,int_2k,int_4k,int_8k)之类的简单引入了额外的类型?
这是出于历史原因,例如,gcc x.x将int实现为32位而另一个编译器将其实现为16,或者是否存在我缺少的真正技术原因?
答案 0 :(得分:6)
中心点是char, short,int, long, long long
不仅仅是来自int
阶梯的整数大小的另一步。 int
很特别。所有较窄的类型都提升到 大小,因此通常可以正常工作" best"在给定的处理器上。因此,short
匹配long
,short/long
或明确地在B
之间进行楔入是高度依赖平台的。
C旨在容纳宽系列处理器。鉴于C已有40多年的历史,这是成功战略的证明。