错误类型转换void指针指向int

San*_*alp 3 c++ xcode cocoa casting

我正在尝试在Xcode 4.2上构建一个项目,其中有一些代码可以强制转换void*int.这个类型转换在c ++编译期间不会导致错误,因为我在这里尝试.

也有人工作在我的项目很好,直到我改变了Valid ArchitecturesBuild Settingsi386i386 x86_64基本上编译在64位模式下的代码了.我不得不执行此更改,因为我正致力于对项目进行去碳化.所以,在那次改变之后,引入了许多错误,包括我发现有点难以消化的错误.可能会发生什么想法?

Rei*_*ica 8

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

但是,在x86_64上,a void*是64位长,而a int很可能保持32位,因此该值不再适合.

如果需要将指针存储在整数类型中,请使用intptr_tuintptr_t为此目的而设计.