头文件 boost/cstdint.hpp
头文件
<boost/cstdint.hpp>
提供了用于编写要求指定整数宽度的可移植代码的 typedef. 所有 typedef 均位于名字空间 boost.本规范是基于 ISO/IEC 9899:1999 C 语言标准的头文件 <stdint.h> 的。C标准所要求的64位类型没有在 boost 头文件中要求,也可能不被实现支持,因为
long long
还未被包含在 C++ 标准中。测试程序请见 cstdint_test.cpp.
精确宽度的整数类型
typedef
int#_t
, 其中 # 代表宽度,表示一个宽度恰好为 # 位的有符号整数类型;如int8_t
表示8-位的有符号整数类型。同样,typedefuint#_t
表示一个宽度恰好为 # 位的无符号整数类型。这些类型是可选的。不过,如果一个实现提供了宽度为 8, 16, 32, 或 64 位的整数类型,它就应该定义相应的 typedef 名字。
最小宽度的整数类型
typedef
int_least#_t
, 其中 # 代表宽度,表示一个宽度至少为 # 位的有符号整数类型,且没有位数更少的有符号整数类型至少具有给定的宽度。因此,int_least32_t
表示一个至少32位的有符号整数类型。同样,typedefuint_least#_t
表示一个宽度至少为 # 位的无符号整数类型,且没有位数更少的无符号整数类型至少具有给定的宽度。需具备的最小宽度整数类型:
int_least8_t
int_least16_t
int_least32_t
uint_least8_t
uint_least16_t
uint_least32_t
其它所有最小宽度整数类型都是可选的。
最快最小宽度整数类型
typedef
int_fast#_t
, 其中 # 代表宽度,表示宽度至少为 # 位的且速度最快的有符号整数类型。同样 typedefuint_fast#_t
表示宽度至少为 # 位的且速度最快的无符号整数类型。不能保证这些类型对于所有用途都是最快的。不过在任何情况下,它们都满足符号和宽度的要求。
需具备的最快最小宽度整数类型:
int_fast8_t
int_fast16_t
int_fast32_t
uint_fast8_t
uint_fast16_t
uint_fast32_t
其它所有最快最小宽度整数类型都是可选的。
最大宽度整数类型
typedef
intmax_t
表示一个有符号整数类型,它可以表示任意有符号整数类型的值。typedef
uintmax_t
表示一个无符号整数类型,它可以表示任意无符号整数类型的值。这两个类型都是必需的。