当前位置: C语言 -- 标准库 -- <stdint.h>

<stdint.h>头文件

<stdint.h>头文件声明了具有指定宽度的整数类型集,并定义了相应的宏集。<stdint.h>头文件还定义了一些宏,用以指定在其它标准头文件中定义的整数类型的范围。

类型在以下类别中定义:

- 具有确定宽度的整数类型;

- 具有最小指定宽度的整数类型;

- 具有最小指定宽度的最快的整数类型;

- 宽度足以保存对象指针的整数类型;

- 具有最大宽度的整数类型。

(其中某些类型可能表示的是相同类型。)

相应的宏指定声明类型的范围,并构造合适的常量。


对于在<stdint.h>头文件中描述的类型,如果实现支持,<stdint.h>头文件应声明该类型的typedef名,并定义相关的宏;反之,对于在<stdint.h>头文件中描述的类型,如果实现不支持,<stdint.h>头文件不应该声明该类型的typedef名,也不应该定义相关的宏。实现应提供描述为“必需”("required")的类型,但无须提供描述为“可选”("optional")的类型。


<stdint.h>头文件声明的整数类型和定义的宏具体如下:

类型(type):
确定宽度整数类型:
intN_t 宽度为N的有符号整数类型。
uintN_t 宽度为N的无符号整数类型。
最小宽度整数类型:
int_leastN_t 最小宽度为N的有符号整数类型。
uint_leastN_t 最小宽度为N的无符号整数类型。
最快最小宽度整数类型:
int_fastN_t 最小宽度为N的最快有符号整数类型。
uint_fastN_t 最小宽度为N的最快无符号整数类型。
能够保存对象指针的整数类型:
intptr_t 能够保存对象指针的有符号整数类型。
uintptr_t 能够保存对象指针的无符号整数类型。
最大宽度整数类型:
intmax_t 最大宽度有符号整数类型。
uintmax_t 最大宽度无符号整数类型。

宏(macro):
确定宽度整数类型的范围:
INTN_MIN 表示宽度为N的有符号整数最小值的宏。
INTN_MAX 表示宽度为N的有符号整数最大值的宏。
UINTN_MAX 表示宽度为N的无符号整数最大值的宏。
最小宽度整数类型的范围:
INT_LEASTN_MIN 表示最小宽度为N的有符号整数最小值的宏。
INT_LEASTN_MAX 表示最小宽度为N的有符号整数最大值的宏。
UINT_LEASTN_MAX 表示最小宽度为N的无符号整数最大值的宏。
最快最小宽度整数类型的范围:
INT_FASTN_MIN 表示最小宽度为N的最快的有符号整数最小值的宏。
INT_FASTN_MAX 表示最小宽度为N的最快的有符号整数最大值的宏。
UINT_FASTN_MAX 表示最小宽度为N的最快的无符号整数最大值的宏。
能够保存对象指针的整数类型的范围:
INTPTR_MIN 表示能够保存对象指针的有符号整数最小值的宏。
INTPTR_MAX 表示能够保存对象指针的有符号整数最大值的宏。
UINTPTR_MAX 表示能够保存对象指针的无符号整数最大值的宏。
最大宽度整数类型的范围:
INTMAX_MIN 表示最大宽度有符号整数最小值的宏。
INTMAX_MAX 表示最大宽度有符号整数最大值的宏。
UINTMAX_MAX 表示最大宽度无符号整数最大值的宏。
其它整数类型的范围:
PTRDIFF_MIN 表示ptrdiff_t类型最小值的宏。
PTRDIFF_MAX 表示ptrdiff_t类型最大值的宏。
SIG_ATOMIC_MIN 表示sig_atomic_t类型最小值的宏。
SIG_ATOMIC_MAX 表示sig_atomic_t类型最大值的宏。
SIZE_MAX 表示size_t类型最大值的宏。
WCHAR_MIN 表示wchar_t类型最小值的宏。
WCHAR_MAX 表示wchar_t类型最大值的宏。
WINT_MIN 表示wint_t类型最小值的宏。
WINT_MAX 表示wint_t类型最大值的宏。
最小宽度整数常量的宏:
INTN_C 表示扩展为int_leastN_t类型常量表达式的宏。
UINTN_C 表示扩展为uint_leastN_t类型常量表达式的宏。
最大宽度整数常量的宏:
INTMAX_C 表示扩展为intmax_t类型整数常量表达式的宏。
UINTMAX_C 表示扩展为uintmax_t类型整数常量表达式的宏。