更改32位到64位之间的数据类型

时间:2013-01-29 09:21:25

标签: c++

我需要在C ++中更改不同操作系统版本之间的数据类型。 是否可以将宏定义到H文件中。这是不错的做法。

if os_version=32
             long =long
    if os_version=64
              long =int

是否有任何宏/变量可以帮助我确定它是64位机器还是32位机器

2 个答案:

答案 0 :(得分:4)

您可以使用精确宽度整数类型(在<cstdint>中声明)

int8_t
int16_t
int32_t
int64_t

这样,大小就会在提供它们的所有平台上得到修复。

答案 1 :(得分:2)

我建议使用stdint.h库。

事实上,你不再使用'int'类型,而是uint32_t用于32位无符号整数,或者uint64_t用于64位无符号整数。

此库为您提供其他类型。因此,通过使用它,您不必担心目标平台(32/64位)。

可以肯定的是,您必须将已经使用的所有类型更改为代码,但是您的代码肯定会更加便携。