<inttypes.h> 提供的定宽整数类型同时包括带符号整数类型(如 int8_t
、int16_t
、int32_t
和 int64_t
)以及无符号整数类型(如 uint8_t
、uint16_t
、uint32_t
和 uint64_t
)。定义为可具有指定位数的最短整数类型的派生类型包括 int_least8_t
、int_least64_t
、uint_least8_t
和 uint_least64_t
。
不应不加选择地使用这些定宽类型。例如,类型 int
可以继续用于循环计数器和文件描述符,类型 long
可用于数组索引。另一方面,对于以下各项的显式二进制表示形式,则应使用定宽类型:
盘上数据
线上数据
硬件寄存器
二进制接口规格(包含显式指定了大小的对象,或者涉及 32 位和 64 位程序之间的共享或通信)
二进制数据结构(供 32 位和 64 位程序通过共享内存和文件等进行使用)