# C 语言标准库头文件 stdint.h
这个头文件提供 固定长度的整数类型。
# 示例
#include <stdio.h>
#include <inttypes.h>
#include <stdint.h>
int main(void) {
// 8位有符号和无符号整数
int8_t small_int = -128;
uint8_t small_uint = 255;
// 16位有符号和无符号整数
int16_t medium_int = -32768;
uint16_t medium_uint = 65535;
// 32位有符号和无符号整数
int32_t large_int = -2147483648;
uint32_t large_uint = 4294967295;
// 64位有符号和无符号整数
int64_t huge_int = -9223372036854775807LL;
uint64_t huge_uint = 18446744073709551615ULL;
// 最快的最小宽度类型
int_fast8_t fast_small = 127;
uint_fast16_t fast_medium = 65535;
// 最小宽度类型
int_least8_t least_small = -128;
uint_least16_t least_medium = 65535;
// 最大宽度整数类型
intmax_t max_int = INTMAX_MAX;
uintmax_t max_uint = UINTMAX_MAX;
// 打印各种类型的值
printf("8-bit signed: %" PRIi8 ", unsigned: %" PRIu8 "\n", small_int, small_uint);
printf("16-bit signed: %" PRIi16 ", unsigned: %" PRIu16 "\n", medium_int, medium_uint);
printf("32-bit signed: %" PRIi32 ", unsigned: %" PRIu32 "\n", large_int, large_uint);
printf("64-bit signed: %" PRIi64 ", unsigned: %" PRIu64 "\n", huge_int, huge_uint);
printf("Fast types signed: %" PRIiFAST8 ", unsigned: %" PRIuFAST16 "\n", fast_small, fast_medium);
printf("Least types signed: %" PRIiLEAST8 ", unsigned: %" PRIuLEAST16 "\n", least_small, least_medium);
printf("Max int: %" PRId64 ", max uint: %" PRIu64 "\n", max_int, max_uint);
// 打印一些类型的尺寸
printf("Size of int8_t: %zu bytes\n", sizeof(int8_t));
printf("Size of int16_t: %zu bytes\n", sizeof(int16_t));
printf("Size of int32_t: %zu bytes\n", sizeof(int32_t));
printf("Size of int64_t: %zu bytes\n", sizeof(int64_t));
return 0;
}
运行结果:
8-bit signed: -128, unsigned: 255
16-bit signed: -32768, unsigned: 65535
32-bit signed: -2147483648, unsigned: 4294967295
64-bit signed: -9223372036854775807, unsigned: 18446744073709551615
Fast types signed: 127, unsigned: 65535
Least types signed: -128, unsigned: 65535
Max int: 9223372036854775807, max uint: 18446744073709551615
Size of int8_t: 1 bytes
Size of int16_t: 2 bytes
Size of int32_t: 4 bytes
Size of int64_t: 8 bytes
# 类型
| 类型 |
标准 |
说明 |
int8_t |
C99 |
8 位有符号整数 |
int16_t |
C99 |
16 位有符号整数 |
int32_t |
C99 |
32 位有符号整数 |
int64_t |
C99 |
64 位有符号整数 |
intptr_t |
C99 |
位数和指针一样的有符号整数 |
intmax_t |
C99 |
位数最多的有符号整数 |
uint8_t |
C99 |
8 位无符号整数 |
uint16_t |
C99 |
16 位无符号整数 |
uint32_t |
C99 |
32 位无符号整数 |
uint64_t |
C99 |
64 位无符号整数 |
uintptr_t |
C99 |
位数和指针一样的无符号整数 |
uintmax_t |
C99 |
位数最多的无符号整数 |
int_fast8_t |
C99 |
不少于 8 位的性能最快的有符号整数 |
int_fast16_t |
C99 |
不少于 16 位的性能最快的有符号整数 |
int_fast32_t |
C99 |
不少于 32 位的性能最快的有符号整数 |
int_fast64_t |
C99 |
不少于 64 位的性能最快的有符号整数 |
int_least8_t |
C99 |
不少于 8 位的位数最少的有符号整数 |
int_least16_t |
C99 |
不少于 16 位的位数最少的有符号整数 |
int_least32_t |
C99 |
不少于 32 位的位数最少的有符号整数 |
int_least64_t |
C99 |
不少于 64 位的位数最少的有符号整数 |
uint_fast8_t |
C99 |
不少于 8 位的性能最快的无符号整数 |
uint_fast16_t |
C99 |
不少于 16 位的性能最快的无符号整数 |
uint_fast32_t |
C99 |
不少于 32 位的性能最快的无符号整数 |
uint_fast64_t |
C99 |
不少于 64 位的性能最快的无符号整数 |
uint_least8_t |
C99 |
不少于 8 位的位数最少的无符号整数 |
uint_least16_t |
C99 |
不少于 16 位的位数最少的无符号整数 |
uint_least32_t |
C99 |
不少于 32 位的位数最少的无符号整数 |
uint_least64_t |
C99 |
不少于 64 位的位数最少的无符号整数 |
| 宏 |
标准 |
说明 |
INT8_C |
C99 |
将值扩展为 int_least8_t 类型的整型常量表达式(字面量) |
INT16_C |
C99 |
将值扩展为 int_least16_t 类型的整型常量表达式(字面量) |
INT32_C |
C99 |
将值扩展为 int_least32_t 类型的整型常量表达式(字面量),例如 INT32C(233) 可能扩展为 233L |
INT64_C |
C99 |
将值扩展为 int_least64_t 类型的整型常量表达式(字面量),例如 INT64C(233) 可能扩展为 233LL |
INTMAX_C |
C99 |
将值扩展为 intmax_t 类型的整型常量表达式(字面量) |
UINT8_C |
C99 |
将值扩展为 uint_least8_t 类型的整型常量表达式(字面量) |
UINT16_C |
C99 |
将值扩展为 uint_least16_t 类型的整型常量表达式(字面量),例如 UINT32C(233) 可能扩展为 233U |
UINT32_C |
C99 |
将值扩展为 uint_least32_t 类型的整型常量表达式(字面量),例如 UINT32C(233) 可能扩展为 233UL |
UINT64_C |
C99 |
将值扩展为 uint_least64_t 类型的整型常量表达式(字面量),例如 UINT64C(233) 可能扩展为 233ULL |
UINTMAX_C |
C99 |
将值扩展为 uintmax_t 类型的整型常量表达式(字面量) |
# 常量
| 类型范围 |
标准 |
说明 |
INT8_MIN |
C99 |
int8_t 的最小值 |
INT16_MIN |
C99 |
int16_t 的最小值 |
INT32_MIN |
C99 |
int32_t 的最小值 |
INT64_MIN |
C99 |
int64_t 的最小值 |
INTPTR_MIN |
C99 |
intptr_t 的最小值 |
INTMAX_MIN |
C99 |
intmax_t 的最小值 |
INT_FAST8_MIN |
C99 |
int_fast8_t 的最小值 |
INT_FAST16_MIN |
C99 |
int_fast16_t 的最小值 |
INT_FAST32_MIN |
C99 |
int_fast32_t 的最小值 |
INT_FAST64_MIN |
C99 |
int_fast64_t 的最小值 |
INT_LEAST8_MIN |
C99 |
int_least8_t 的最小值 |
INT_LEAST16_MIN |
C99 |
int_least16_t 的最小值 |
INT_LEAST32_MIN |
C99 |
int_least32_t 的最小值 |
INT_LEAST64_MIN |
C99 |
int_least64_t 的最小值 |
INT8_MAX |
C99 |
int8_t 的最大值 |
INT16_MAX |
C99 |
int16_t 的最大值 |
INT32_MAX |
C99 |
int32_t 的最大值 |
INT64_MAX |
C99 |
int64_t 的最大值 |
INTPTR_MAX |
C99 |
intptr_t 的最大值 |
INTMAX_MAX |
C99 |
intmax_t 的最大值 |
INT_FAST8_MAX |
C99 |
int_fast8_t 的最大值 |
INT_FAST16_MAX |
C99 |
int_fast16_t 的最大值 |
INT_FAST32_MAX |
C99 |
int_fast32_t 的最大值 |
INT_FAST64_MAX |
C99 |
int_fast64_t 的最大值 |
INT_LEAST8_MAX |
C99 |
int_least8_t 的最大值 |
INT_LEAST16_MAX |
C99 |
int_least16_t 的最大值 |
INT_LEAST32_MAX |
C99 |
int_least32_t 的最大值 |
INT_LEAST64_MAX |
C99 |
int_least64_t 的最大值 |
UINT8_MAX |
C99 |
uint8_t 的最大值 |
UINT16_MAX |
C99 |
uint16_t 的最大值 |
UINT32_MAX |
C99 |
uint32_t 的最大值 |
UINT64_MAX |
C99 |
uint64_t 的最大值 |
UINTPTR_MAX |
C99 |
uintptr_t 的最大值 |
UINTMAX_MAX |
C99 |
uintmax_t 的最大值 |
UINT_FAST8_MAX |
C99 |
uint_fast8_t 的最大值 |
UINT_FAST16_MAX |
C99 |
uint_fast16_t 的最大值 |
UINT_FAST32_MAX |
C99 |
uint_fast32_t 的最大值 |
UINT_FAST64_MAX |
C99 |
uint_fast64_t 的最大值 |
UINT_LEAST8_MAX |
C99 |
uint_least8_t 的最大值 |
UINT_LEAST16_MAX |
C99 |
uint_least16_t 的最大值 |
UINT_LEAST32_MAX |
C99 |
uint_least32_t 的最大值 |
UINT_LEAST64_MAX |
C99 |
uint_least64_t 的最大值 |
| 类型宽度 |
标准 |
说明 |
INT8_WIDTH |
C23 |
int8_t 的位宽度 |
INT16_WIDTH |
C23 |
int16_t 的位宽度 |
INT32_WIDTH |
C23 |
int32_t 的位宽度 |
INT64_WIDTH |
C23 |
int64_t 的位宽度 |
INTPTR_WIDTH |
C23 |
intptr_t 的位宽度 |
INTMAX_WIDTH |
C23 |
intmax_t 的位宽度 |
UINT8_WIDTH |
C23 |
uint8_t 的位宽度 |
UINT16_WIDTH |
C23 |
uint16_t 的位宽度 |
UINT32_WIDTH |
C23 |
uint32_t 的位宽度 |
UINT64_WIDTH |
C23 |
uint64_t 的位宽度 |
UINTPTR_WIDTH |
C23 |
uintptr_t 的位宽度 |
UINTMAX_WIDTH |
C23 |
uintmax_t 的位宽度 |
INT_FAST8_WIDTH |
C23 |
int_fast8_t 的位宽度 |
INT_FAST16_WIDTH |
C23 |
int_fast16_t 的位宽度 |
INT_FAST32_WIDTH |
C23 |
int_fast32_t 的位宽度 |
INT_FAST64_WIDTH |
C23 |
int_fast64_t 的位宽度 |
INT_LEAST8_WIDTH |
C23 |
int_least8_t 的位宽度 |
INT_LEAST16_WIDTH |
C23 |
int_least16_t 的位宽度 |
INT_LEAST32_WIDTH |
C23 |
int_least32_t 的位宽度 |
INT_LEAST64_WIDTH |
C23 |
int_least64_t 的位宽度 |
UINT_FAST8_WIDTH |
C23 |
uint_fast8_t 的位宽度 |
UINT_FAST16_WIDTH |
C23 |
uint_fast16_t 的位宽度 |
UINT_FAST32_WIDTH |
C23 |
uint_fast32_t 的位宽度 |
UINT_FAST64_WIDTH |
C23 |
uint_fast64_t 的位宽度 |
UINT_LEAST8_WIDTH |
C23 |
uint_least8_t 的位宽度 |
UINT_LEAST16_WIDTH |
C23 |
uint_least16_t 的位宽度 |
UINT_LEAST32_WIDTH |
C23 |
uint_least32_t 的位宽度 |
UINT_LEAST64_WIDTH |
C23 |
uint_least64_t 的位宽度 |
# 推荐阅读
本文 更新于: 2025-11-27 09:38:07 创建于: 2025-11-27 09:38:07