C中16位与32位机器的int数据类型的大小

Sho*_*dal 2 c primitive-types

为什么int数据类型的大小在16位32位体系结构中是不同的,而其他原始数据类型在两种体系结构中具有相同的大小?

pax*_*blo 6

(共用花园式的各种积分类型的大小int,long,short等)不被C标准固定的,唯一的要求是,它们具有最低的能力和它们的相对尺寸如下相等或更好的规则(例如,long至少和...一样大int.

这是因为(1)原始实现只是使用了最自然的体系结构; (2)标准化委员会的最初任务是编纂现有做法,而不是发明语言.

如果您想要固定大小的整数类型,请使用intN_t样式类型,例如int16_tuint32_t.这些是为了这个目的而引入的.