Fixed width integer types (since C99)
目录 |
类型
|
定义于头文件
<stdint.h>
|
|
int8_t
int16_t
int32_t
int64_t
|
宽度恰好为
8、16、32 和 64 位的有符号整数类型 无填充位且使用二进制补码表示负值 (仅当实现直接支持该类型时提供) |
int_fast8_t
int_fast16_t
int_fast32_t
int_fast64_t
|
宽度至少为
8、16、32 和 64 位的最快有符号整数类型 |
int_least8_t
int_least16_t
int_least32_t
int_least64_t
|
宽度至少为
8、16、32 和 64 位的最小有符号整数类型 |
intmax_t
|
最大宽度整数类型 |
intptr_t
|
能够容纳指针的整数类型 |
uint8_t
uint16_t
uint32_t
uint64_t
|
宽度恰好为
8、16、32 和 64 位的无符号整数类型 (仅当实现直接支持该类型时提供) |
uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t
|
宽度至少为
8、16、32 和 64 位的最快无符号整数类型 |
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
|
宽度至少为
8、16、32 和 64 位的最小无符号整数类型 |
uintmax_t
|
最大宽度无符号整数类型 |
uintptr_t
|
能够容纳指针的无符号整数类型 |
实现可以定义类型别名
int
N
_t
、
int_fast
N
_t
、
int_least
N
_t
、
uint
N
_t
、
uint_fast
N
_t
和
uint_least
N
_t
,其中
N
不是 8、16、32 或 64。仅当实现支持具有无填充位的该宽度整数类型时,才能定义
int
N
_t
形式的类型别名。因此,
uint24_t
表示宽度恰好为 24 位的无符号整数类型。
下列列出的每个宏,当且仅当实现定义了对应的类型定义名称时才会被定义。宏
INT
N
_C
和
UINT
N
_C
分别对应于类型定义名称
int_least
N
_t
和
uint_least
N
_t
。
宏常量
|
定义于头文件
<stdint.h>
|
|
有符号整数:位宽 |
|
|
INT8_WIDTH
INT16_WIDTH
INT32_WIDTH
INT64_WIDTH
(C23)
(可选)
|
int8_t
、
int16_t
、
int32_t
、
int64_t
类型对象的位宽(精确为 8、16、32、64)
(宏常量) |
|
INT_FAST8_WIDTH
INT_FAST16_WIDTH
INT_FAST32_WIDTH
INT_FAST64_WIDTH
(C23)
|
int_fast8_t
、
int_fast16_t
、
int_fast32_t
、
int_fast64_t
类型对象的位宽
(宏常量) |
|
INT_LEAST8_WIDTH
INT_LEAST16_WIDTH
INT_LEAST32_WIDTH
INT_LEAST64_WIDTH
(C23)
|
int_least8_t
、
int_least16_t
、
int_least32_t
、
int_least64_t
类型对象的位宽
(宏常量) |
|
INTPTR_WIDTH
(C23)
(可选)
|
intptr_t
类型对象的位宽
(宏常量) |
|
INTMAX_WIDTH
(C23)
|
intmax_t
类型对象的位宽
(宏常量) |
有符号整数:最小值 |
|
|
INT8_MIN
INT16_MIN
INT32_MIN
INT64_MIN
|
int8_t
、
int16_t
、
int32_t
、
int64_t
类型对象的最小值
(宏常量) |
|
INT_FAST8_MIN
INT_FAST16_MIN
INT_FAST32_MIN
INT_FAST64_MIN
|
int_fast8_t
、
int_fast16_t
、
int_fast32_t
、
int_fast64_t
类型对象的最小值
(宏常量) |
|
INT_LEAST8_MIN
INT_LEAST16_MIN
INT_LEAST32_MIN
INT_LEAST64_MIN
|
int_least8_t
、
int_least16_t
、
int_least32_t
、
int_least64_t
类型对象的最小值
(宏常量) |
|
INTPTR_MIN
|
intptr_t
类型对象的最小值
(宏常量) |
|
INTMAX_MIN
|
intmax_t
类型对象的最小值
(宏常量) |
有符号整数:最大值 |
|
|
INT8_MAX
INT16_MAX
INT32_MAX
INT64_MAX
|
int8_t
、
int16_t
、
int32_t
、
int64_t
类型对象的最大值
(宏常量) |
|
INT_FAST8_MAX
INT_FAST16_MAX
INT_FAST32_MAX
INT_FAST64_MAX
|
int_fast8_t
、
int_fast16_t
、
int_fast32_t
、
int_fast64_t
类型对象的最大值
(宏常量) |
|
INT_LEAST8_MAX
INT_LEAST16_MAX
INT_LEAST32_MAX
INT_LEAST64_MAX
|
int_least8_t
、
int_least16_t
、
int_least32_t
、
int_least64_t
类型对象的最大值
(宏常量) |
|
INTPTR_MAX
|
intptr_t
类型对象的最大值
(宏常量) |
|
INTMAX_MAX
|
intmax_t
类型对象的最大值
(宏常量) |
无符号整数:位宽 |
|
|
UINT8_WIDTH
UINT16_WIDTH
UINT32_WIDTH
UINT64_WIDTH
(C23)
(可选)
|
uint8_t
、
uint16_t
、
uint32_t
、
uint64_t
类型对象的位宽(精确为 8、16、32、64)
(宏常量) |
|
UINT_FAST8_WIDTH
UINT_FAST16_WIDTH
UINT_FAST32_WIDTH
UINT_FAST64_WIDTH
(C23)
|
uint_fast8_t
、
uint_fast16_t
、
uint_fast32_t
、
uint_fast64_t
类型对象的位宽
(宏常量) |
|
UINT_LEAST8_WIDTH
UINT_LEAST16_WIDTH
UINT_LEAST32_WIDTH
UINT_LEAST64_WIDTH
(C23)
|
uint_least8_t
、
uint_least16_t
、
uint_least32_t
、
uint_least64_t
类型对象的位宽
(宏常量) |
|
UINTPTR_WIDTH
(C23)
(可选)
|
uintptr_t
类型对象的位宽
(宏常量) |
|
UINTMAX_WIDTH
(C23)
|
uintmax_t
类型对象的位宽
(宏常量) |
无符号整数:最大值 |
|
|
UINT8_MAX
UINT16_MAX
UINT32_MAX
UINT64_MAX
|
uint8_t
、
uint16_t
、
uint32_t
、
uint64_t
类型对象的最大值
(宏常量) |
|
UINT_FAST8_MAX
UINT_FAST16_MAX
UINT_FAST32_MAX
UINT_FAST64_MAX
|
uint_fast8_t
、
uint_fast16_t
、
uint_fast32_t
、
uint_fast64_t
类型对象的最大值
(宏常量) |
| <div class="t-dsc | |
用于最小宽度整型常量的函数宏
|
INT8_C
INT16_C
INT32_C
INT64_C
|
扩展为具有指定参数值且类型分别为
int_least8_t
、
int_least16_t
、
int_least32_t
、
int_least64_t
的整型常量表达式
(函数宏) |
|
INTMAX_C
|
扩展为具有指定参数值且类型为
intmax_t
的整型常量表达式
(函数宏) |
|
UINT8_C
UINT16_C
UINT32_C
UINT64_C
|
扩展为具有指定参数值且类型分别为
uint_least8_t
、
uint_least16_t
、
uint_least32_t
、
uint_least64_t
的整型常量表达式
(函数宏) |
|
UINTMAX_C
|
扩展为具有指定参数值且类型为
uintmax_t
的整型常量表达式
(函数宏) |
#include <stdint.h> UINT64_C(0x123) // 可能展开为 0x123ULL 或 0x123UL
格式宏常量
|
定义于头文件
<inttypes.h>
|
fprintf 系列函数的格式常量
此处列出的每个
PRI
宏,当且仅当实现定义了对应的类型定义名称时才会被定义。
|
对应
int 或 unsigned int 的等效类型 |
描述 | 数据类型宏定义 | ||||
|---|---|---|---|---|---|---|
[u]int
x
_t
|
[u]int_least
x
_t
|
[u]int_fast
x
_t
|
[u]intmax_t
|
[u]intptr_t
|
||
d
|
有符号十进制整数值输出 | PRId x | PRIdLEAST x | PRIdFAST x | PRIdMAX | PRIdPTR |
i
|
PRIi x | PRIiLEAST x | PRIiFAST x | PRIiMAX | PRIiPTR | |
u
|
无符号十进制整数值输出 | PRIu x | PRIuLEAST x | PRIuFAST x | PRIuMAX | PRIuPTR |
o
|
无符号八进制整数值输出 | PRIo x | PRIoLEAST x | PRIoFAST x | PRIoMAX | PRIoPTR |
x
|
无符号小写十六进制整数值输出 | PRIx x | PRIxLEAST x | PRIxFAST x | PRIxMAX | PRIxPTR |
X
|
无符号大写十六进制整数值输出 | PRIX x | PRIXLEAST x | PRIXFAST x | PRIXMAX | PRIXPTR |
fscanf 系列函数的格式常量
此处列出的每个
SCN
宏当且仅当实现定义了对应的类型别名且具有适用于该类型的
fscanf
长度修饰符时才会被定义。
|
对应
int 或 unsigned int 的等效类型 |
描述 | 数据类型宏定义 | ||||
|---|---|---|---|---|---|---|
[u]int
x
_t
|
[u]int_least
x
_t
|
[u]int_fast
x
_t
|
[u]intmax_t
|
[u]intptr_t
|
||
d
|
有符号十进制整数值输入 | SCNd x | SCNdLEAST x | SCNdFAST x | SCNdMAX | SCNdPTR |
i
|
有符号整数值输入(进制由解析的首字符决定) | SCNi x | SCNiLEAST x | SCNiFAST x | SCNiMAX | SCNiPTR |
u
|
无符号十进制整数值输入 | SCNu x | SCNuLEAST x | SCNuFAST x | SCNuMAX | SCNuPTR |
o
|
无符号八进制整数值输入 | SCNo x | SCNoLEAST x | SCNoFAST x | SCNoMAX | SCNoPTR |
x
|
无符号十六进制整数值输入 | SCNx x | SCNxLEAST x | SCNxFAST x | SCNxMAX | SCNxPTR |
示例
参考文献
- C23 标准 (ISO/IEC 9899:2024):
-
- 7.8.1 格式说明符宏 (p: TBD)
-
- 7.18 整数类型 <stdint.h> (p: TBD)
- C17 标准 (ISO/IEC 9899:2018):
-
- 7.8.1 格式说明符宏 (p: 158-159)
-
- 7.18 整数类型 <stdint.h> (p: 212-216)
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.8.1 格式说明符宏 (p: 217-218)
-
- 7.18 整数类型 <stdint.h> (p: 289-295)
- C99标准(ISO/IEC 9899:1999):
-
- 7.8.1 格式说明符宏(页码:198-199)
-
- 7.18 整型类型 <stdint.h>(页码:255-261)
参见
|
C++ 文档
关于
固定宽度整数类型
|
|