我需要在C ++中更改不同操作系统版本之间的数据类型。 是否可以将宏定义到H文件中。这是不错的做法。
前
if os_version=32
long =long
if os_version=64
long =int
是否有任何宏/变量可以帮助我确定它是64位机器还是32位机器
答案 0 :(得分:4)
您可以使用精确宽度整数类型(在<cstdint>
中声明)
int8_t
int16_t
int32_t
int64_t
这样,大小就会在提供它们的所有平台上得到修复。
答案 1 :(得分:2)
我建议使用stdint.h库。
事实上,你不再使用'int'类型,而是uint32_t用于32位无符号整数,或者uint64_t用于64位无符号整数。
此库为您提供其他类型。因此,通过使用它,您不必担心目标平台(32/64位)。
可以肯定的是,您必须将已经使用的所有类型更改为代码,但是您的代码肯定会更加便携。