在 32 位到 64 位之间更改数据类型
change data type between 32 bit to 64 bit
我需要在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位)。
缺点是您必须将已经使用的所有类型更改为代码中,但是您将拥有一个绝对更具可移植性的代码。
相关文章:
- 防止主数据类型C++的隐式转换
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在C++中打印指向不同基元数据类型的指针的内存地址
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- C++ - 比较模板和类之间的数据类型
- 包括数据类型之间的斗争
- C++11 标准中的哪一部分规定了基元数据类型大小之间的相对顺序?
- memcpy是否可以保留不同类型之间的数据
- 创建一个带有限制的数字数据类型,一个介于 -10 和 10 之间的整数
- 抽象数据类型(ADT)和数据结构之间有什么区别
- 数据类型类和读取器/解析器之间的耦合
- 数据类型之后或变量名称之前的引用符号之间的差异
- gSoap在接口之间共享数据类型
- 我们应该使用哪种数据类型来输入一个介于 0<= 数字 <= 10^18 之间的数字
- 可以在 C# 和C++之间传输的数据类型
- 在10^10到10^11之间的数字的数据类型应该是什么
- 数据类型的大小和大小(数据类型)之间的区别
- 在托管c#应用程序的非托管c++ Dll调用中,如何处理数据类型之间的冲突
- 在 32 位到 64 位之间更改数据类型