C 编程/inttypes.h
外观
< C 编程
(重定向自 C 编程/C 参考/inttypes.h)inttypes.h 文件是 C 头文件,它是 C 标准库 和 API 的一部分。它是在 1999 年版的 ISO C 标准 (称为 C99) 中添加的。它 包含 stdint.h 头文件,并定义了许多 宏,以便与 printf 和 scanf 函数族一起使用,以及用于处理 intmax_t
类型的函数。
在 inttypes.h 中定义的宏遵循一个规律,以便简化使用。遵循的模式如下[1]
- N 用于 N 位 大小分配给数据类型(例如,32 用于 整数 的 32 位大小,16 用于无符号整数的 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]。它还可以通过使用头文件中列出的宏,将数据类型修饰符(如无符号整数和有符号整数)的大小限制为特定值[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
- ↑ The Open Group Specifications Issue 6. "应用程序使用和基本原理". IEEE 和 The Open Group.
- ↑ The Open Group 规范 Issue 6. "应用程序使用和原理". IEEE 和 The Open Group 基础. 检索于 2011 年 9 月 14 日.
{{cite web}}
: 检查日期值:|accessdate=
(帮助)