C 编程/inttypes.h
外观
< C 编程
inttypes.h 文件是 C 头文件,它是 C 标准库 和 API 的一部分。它是在 ISO C 标准的 1999 版本(称为 C99)中添加的。它 包含 stdint.h 头文件,并为使用 printf 和 scanf 函数系列定义了许多 宏,以及用于处理 intmax_t
类型的函数。
在 inttypes.h 中定义的宏遵循一种规律模式,以简化使用。遵循的模式如下[1]
- N 用于 N 位 大小分配给数据类型(例如,对于 整数 为 32 位大小,对于无符号 int 为 16 位大小,等等)
- PTR 用于 指针
- MAX 用于最大支持的位大小
- FAST,其含义没有明确定义,留给实现来决定“快速”整数数据类型的含义。
下表给出了 inttypes.h 中列出的各种数据类型使用的语法[2][3]
固定宽度整数 | 带符号 | 无符号 |
---|---|---|
8 位 | int8_t | uint8_t |
16 位 | int16_t | uint16_t |
32 位 | int32_t | uint32_t |
64 位 | int64_t | uint64_t |
小 & 固定整数类型 | 带符号 | 无符号 |
---|---|---|
8 位 | int_least8_t | uint_least8_t |
16 位 | int_least16_t | uint_least16_t |
32 位 | int_least32_t | uint_least32_t |
64 位 | int_least64_t | uint_least64_t |
快速 & 固定整数类型 | 带符号 | 无符号 |
---|---|---|
8 位 | int_fast8_t | uint_fast8_t |
16 位 | int_fast16_t | uint_fast16_t |
32 位 | int_fast32_t | uint_fast32_t |
64 位 | int_fast64_t | uint_fast64_t |
16 位、32 位和 64 位系统等不同处理器中的处理速度差异要求各种数据类型具有统一的大小。ISO/IEC 9899:1990 规定该语言应支持 char、int、short 和 long 等基本数据类型,但没有限制这些数据类型的最小或最大大小,除了 int 至少为 16 位长,long 为 32 位长。
在 16 位系统中,大多数实现分别为 char、short、int 和 long 数据类型分配了 8、16、16 和 32 位。在 32 位系统中,它分别为 char、short、int 和 long 数据类型分配了 8、16、32 和 32 位[1]。int 大小上的差异给从一个系统迁移到另一个系统的用户带来了问题。
包含此头文件的主要目的是限制,或者换句话说,将 int 数据类型的确切大小限制为特定值(可能是 16 位或 32 位)[4]。它还可用于通过使用头文件中列出的宏将无符号 int 和带符号 int 等数据类型修饰符的大小限制为特定值[5]。
- ↑ a b http://manpages.ubuntu.com/manpages/gutsy/man7/inttypes.h.7posix.html
- ↑ https://cppreference.cn/w/cpp/types/integer
- ↑ http://linux.die.net/man/3/int64_t
- ↑ 开放组规范第 6 版. "应用程序使用和基本原理". IEEE 和开放组.
- ↑ 开放组规范第 6 版. "应用程序使用和基本原理". IEEE 和开放组基础. 检索于 2011 年 9 月 14 日.
{{cite web}}
: 请检查日期值:|accessdate=
(帮助)