我需要在 C++ 中更改不同操作系统版本之间的数据类型。是否可以将宏定义到H文件中。这将是一个很好的做法。
前任
if os_version=32
long =long
if os_version=64
long =int
是否有任何宏/变量可以帮助我确定它是 64 位机器还是 32 位机器
我需要在 C++ 中更改不同操作系统版本之间的数据类型。是否可以将宏定义到H文件中。这将是一个很好的做法。
前任
if os_version=32
long =long
if os_version=64
long =int
是否有任何宏/变量可以帮助我确定它是 64 位机器还是 32 位机器
您可以改用精确宽度的整数类型(在 中声明<cstdint>
)
int8_t
int16_t
int32_t
int64_t
这样,尺寸在所有提供它们的平台上都是固定的。
我建议使用 stdint.h 库。
事实上,您不再使用“int”类型,而是 uint32_t 用于 32 位无符号整数,或 uint64_t 用于 64 位无符号整数。
该库为您提供其他类型。因此,通过使用它,您不必担心目标平台(32/64 位)。
缺点是您必须将所有已使用的类型更改为代码,但您的代码肯定更便携。