繁体   English   中英

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

[英]change data type between 32 bit to 64 bit

我需要在C ++中的不同OS版本之间更改数据类型。 是否可以在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位)。

缺点是您必须将已经使用的所有类型都更改为代码,但是您的代码肯定更可移植。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM