<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类型整数常量表达式的宏。 |