gpt4 book ai didi

c++ - 将 void 指针类型转换为 int 时出错

转载 作者:太空狗 更新时间:2023-10-29 20:04:14 24 4
gpt4 key购买 nike

我正在尝试在 Xcode 4.2 上构建一个项目,其中有一些代码将 void* 类型转换为 int。这种类型转换在 C++ 编译期间不会导致错误,因为我尝试了 here .

在我将 Build Settings 中的 Valid Architecturesi386 更改为 i386 x86_64 之前,它在我的项目中也运行良好 基本上也是在 64 位模式下编译代码。我必须执行此更改,因为我正在致力于项目的去碳化。因此,在那次更改之后,引入了许多错误,包括这个我发现有点难以消化的错误。有什么想法吗?

最佳答案

在 x86 上,void* 是 32 位长,int 很可能也是 32 位长,所以一切正常。

然而,在 x86_64 上,void* 的长度为 64 位,而 int 可能仍为 32 位,因此该值不再适合。

如果您需要以整数类型存储指针,请使用专为此目的设计的intptr_tuintptr_t

关于c++ - 将 void 指针类型转换为 int 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21183134/

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