我想使用 U32 类型,但我找不到定义它的标头。有谁知道吗?
答案 0 :(得分:13)
没有名为U32
的标准类型,但如果您#include <cstdint>
(C stdint.h
),您可以使用std::uint32_t
1 , 32位无符号整数,这是(我假设)你想要的。
以下是a list of types in the cstdint
header:
namespace std {
int8_t
int16_t
int32_t
int64_t
int_fast8_t
int_fast16_t
int_fast32_t
int_fast64_t
int_least8_t
int_least16_t
int_least32_t
int_least64_t
intmax_t
intintptr_t
uint8_t
uint16_t
uint32_t
uint64_t
uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
uintmax_t
uintintptr_t
}
1 感谢Martinho Fernandes指出这些类型位于命名空间std
中。
答案 1 :(得分:2)
虽然cstdint可能是一个解决方案,但它不是通用的 - 2010年之前的MSVC版本没有附带那个。如果为多个平台编写,您需要自己提供标准类型,如果MSVC&lt; 2010年被发现。如果您使用提升,请使用boost one。
答案 2 :(得分:2)
U32是unsigned int的惯用快捷方式。它的共同定义是:
typedef unsigned int U32;
但其使用的主要原因是能够手动控制实际定义。希望这会有所帮助。