int8_t
、int16_t
、int32_t
和int64_t
是有符号整数类型,宽度分别为 8、16、32 和 64 位,没有填充位,并且对负值使用 2 的补码(仅在实现直接支持该类型时提供)。
int_least8_t
、int_least16_t
、int_least32_t
、 和int_least64_t
是最小有符号整数类型,宽度分别至少为 8、16、32 和 64 位。
如果一个实现有 int8_t
,那么它看起来像是 的自然选择int_least8_t
,因为它是宽度至少为 8 的类型。但是,例如在 LLP64 数据模型上 和int
都是long
32 位,所以int32_t
可能是int
但int_least32_t
可能是long
,这将是令人困惑,但它有效吗?
我可以合理地预期int_least32_t
( 和char32_t
) 和int32_t
是同一类型吗?是否有 int_leastX_t 与 intX_t 不同的实际实现?(死亡站 9000除外)