在c++中将遗留代码移植到64位
Porting Legacy code to 64 Bit in C++
我正在尝试将传统的32位代码移植到64位。我们有一个这样的联合:
union ptType
{
int * iPtr;
short * sPtr;
long * lPtr;
bool * bPtr;
double * dPtr;
};
可以猜到,这个联合用于存储所有这些类型的地址。我读过很多关于指针大小和算术改变在64位。但我不太确定这种行为。这段代码似乎适用于QA,但我更担心的是生产,因为它会带来巨大的流量。
移植到64位会如何影响代码的行为?
你是对的,在大多数32位到64位的转换下,这些指针的大小都会翻倍。这个联合的操作本身不太可能是一个问题,但是您必须注意它通过类型转换、硬编码大小等方式与其他代码交互的地方。
相关文章:
- 将代码从 32 位迁移到 64 位时出现问题 Visual Studio 2010
- 将 32 位旧代码移植到 64 位时如何处理更改数据类型大小?
- 将32位和64位应用程序(具有相同代码)编译为一个EXE
- 如何从 c++ 代码生成 arm64-v8a 64 位共享对象?
- 代码块错误: "File cannot be saved" -Win10 64 位-
- 确定代码中当前程序集是否为 32/64 位的最简单方法
- collect2:错误:ld 在制作带有代码块的 .so 文件(64 位版本)时返回 1 个退出状态
- MSVC:在64位代码中读取特定的64位或32位寄存器(例如R10)
- 如何将RDRAND指令添加到与2008年汇编的64位代码中
- C# 和 C++ 代码之间的链接在 64 位计算机中不起作用
- 创建进程失败,错误代码'740' Windows7 64 位
- 试用版代码在 Windows 上的 32 位运行速度比在 Linux 上的 64 位快 2 倍
- 在 64 位 debian 上编译 GCC 的代码可视化补丁
- 我想在Windows上使用Clang从C++编译64位代码-找不到stdio.h文件
- 将 32 位端口代码移植到 64 位代码
- 如何在Visual C++中编写本机64位代码
- 为什么指针算术中的整数提升在64位代码中的表现与在32位代码中不同
- 64位代码洞返回错误的入口点位置
- 什么是 32 位和 64 位 c++ 代码?
- visual如何在64位C++代码中使用暂停汇编指令