gpt4 book ai didi

c - 将 64 位代码移植到 32 位机器

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:30 25 4
gpt4 key购买 nike

我看到很多人询问从 32 位机器到 64 位机器的移植问题。但是将 64 位编写的代码移植到 32 位不是很常见吗?我正在尝试在 C 中将插件从 64 位移植到 32 位,但在将 void * 存储到 64 位整数等情况下面临类似的问题,反之亦然。

应该采用什么方法来更改代码,以便相同的代码在两台(i386 和 x86_64)机器上都能工作?我认为在 32 位机器上使用 uint64_t * 代替 32 位的 void* 没有意义吗?是否存在针对此类情况的通用方法?

最佳答案

指针不应该存储在固定大小的整数中。如果您需要以整数类型存储指针,正确的类型是 uintptr_t,但实际上根本不应该将指针存储在整数对象中。 但是,使用太大的整数类型并没有什么坏处;它只会浪费一点内存。因此,如果在 uint64_t 中存储指针是您代码中的唯一问题,它应该可以很好地为 32 位目标编译。

关于c - 将 64 位代码移植到 32 位机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com