应尽可能使用系统派生的类型(如 size_t
),以使产生的变量在各种函数间传递时都有效。而新的派生类型 uintptr_t
或 intptr_t
是整数类型,应该用于指针。
固定宽度的整数类型用于表示二进制数据结构或硬件寄存器的显式大小,而基础 C 语言数据类型(如 int
)仍然可用于循环计数器或文件描述符。
一些系统派生类型在 32 位系统上表示 32 位,但是在 64 位系统上表示 64 位。以此方式更改大小的派生类型包括: clock_t
、daddr_t
、dev_t
、ino_t
、intptr_t
、off_t
、size_t
、ssize_t
、time_t
、uintptr_t
和 timeout_id_t
。
设计使用这些派生类型的驱动程序时,请特别注意这些类型的用法,尤其是驱动程序将这些值指定给其他类型(如固定宽度类型)的变量时。