<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 位程序通过共享内存和文件等进行使用)