我需要一种方法来获得目标编译器体系结构上可用的最大类型。我希望有一个定义:
#if defined PLATFORM_32BIT
#define LARGEST_UNSIGNED_TYPE uint32_t
#elseif defined PLATFORM_64BIT
#define LARGEST_UNSIGNED_TYPE uint64_t
#endif
是否有标准的C ++方法来实现这一目标?或者我需要自己动手吗?
答案 0 :(得分:12)
如果您可以使用uint64_t
,您还应该能够使用uintmax_t
。
答案 1 :(得分:3)
C ++中的标题<cstdint>
(以及C中的<stdint.h>
)已包含以下定义
typedef
签名整数类型 intmax_t;
和
typedef
无符号整数类型 uintmax_t;