Qt 中有一些类型,例如 quint8,在 Qt 支持的所有平台上都保证为 8 位。
我想知道 C++11 是否有这种类型?如果没有,那么替代方案是什么?
谢谢。
Qt 中有一些类型,例如 quint8,在 Qt 支持的所有平台上都保证为 8 位。
我想知道 C++11 是否有这种类型?如果没有,那么替代方案是什么?
谢谢。
是的,C++11添加了具有更精确定义大小的类型。这是参考文献。
它们在<cstdint>
中定义。
您可以保证拥有这些类型:
intmax_t uintmax_t
int_least8_t uint_least8_t
int_least16_t uint_least16_t
int_least32_t uint_least32_t
int_least64_t uint_least64_t
int_fast8_t uint_fast8_t
int_fast16_t uint_fast16_t
int_fast32_t uint_fast32_t
int_fast64_t uint_fast64_t
你可能有,也可能没有这些东西:
int8_t uint8_t
int16_t uint16_t
int32_t uint32_t
int64_t uint64_t
intptr_t uintptr_t
解释:
u
前缀表示无符号。least
变种是至少具有该宽度的最小整数类型。fast
变种是至少具有该宽度的最快整数类型。intptr
变种保证可转换为void*
,并且可以恢复。max
变种是最大的可用类型。解释:
u
前缀表示无符号。least
变种是至少具有该宽度的最小整数类型。fast
变种是至少具有该宽度的最快整数类型。intptr
变种保证可转换为void*
,并且可以恢复。max
变种是最大的可用类型。是的,它可以做到,甚至更多。 从文档中可以看出:
uint8_t unsigned integer type with width of 8
uint_fast8_t fastest unsigned integer type with width of 8
uint_least8_t smallest unsigned integer type with width of at least 8
quint8
,否则请放弃它并转向现代C++。CONFIG += c++11