1

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

前任

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

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

4

2 回答 2

4

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

int8_t
int16_t
int32_t
int64_t

这样,尺寸在所有提供它们的平台上都是固定的。

于 2013-01-29T09:22:47.433 回答
2

我建议使用 stdint.h 库。

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

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

缺点是您必须将所有已使用的类型更改为代码,但您的代码肯定更便携。

于 2013-01-29T09:29:59.373 回答