stdint.h

固定宽度的整数类型

stdint.h 定义了一些固定宽度的整数类型别名,主要有下面三类。

上面所有类型都是有符号的,类型名前面可以加一个前缀u,表示无符号类型,比如uint16_t

C 语言标准要求定义以下类型。

最大宽度的整数类型

以下两个类型表示当前系统可用的最大宽度整数。

如果想要尽可能大的整数时,可以使用上面类型。

固定宽度的整数常量

以下一些带参数的宏,可以生成固定宽度的整数常量。

下面是用法示例。

uint16_t x = UINT16_C(12);
intmax_t y = INTMAX_C(3490);

固定宽度的整数极限值

下面一些宏代表了固定宽度的整数最大值和最小值。

注意,所有无符号整数类型的最小值都为0,所以没有对应的宏。

占位符

C 语言还在头文件 inttypes.h 里面,为上面类型定义了printf()scanf()的占位符,参见《inttypes.h》一章。