在使遗留代码适应 64 位机器时,一个常见的挑战是将 void* 参数转换为函数内的兼容类型。为了解决这个问题,让我们探索一个干净的解决方案。
一种方法是利用现代 C 技术。例如,可以利用 uintptr_t 或 intptr_t 类型,它们被设计为表示可以保存指针值的整数值。要将指针转换为 uintptr_t,reinterpret_cast 是合适的方法:
#include <cstdint> void *p; std::uintptr_t i = reinterpret_cast<std::uintptr_t>(p);
此方法可确保 32 位和 64 位机器上的兼容性,允许您在函数内安全地访问和操作指针值作为整数.
以上是如何将指针转换为整数以实现 32/64 位兼容性?的详细内容。更多信息请关注PHP中文网其他相关文章!