gpt4 book ai didi

c++ - 在 64 位机器上编译 32 位代码时,我应该如何处理 "cast from ‘void*’ 到 ‘int’ 丢失精度?

转载 作者:IT老高 更新时间:2023-10-28 12:39:55 27 4
gpt4 key购买 nike

我有一个可以在 32 位机器上编译并正常工作的包。我现在正在尝试让它在 64 位机器上编译并发现以下错误-

 error: cast from ‘void*’ to ‘int’ loses precision

是否有一个编译器标志来抑制这些错误?还是我必须手动编辑这些文件以避免这些强制转换?

最佳答案

问题在于,在 32 位中,int(它是一个 32 位整数)将保存一个指针值。

当您移至 64 位时,您不能再将指针存储在 int 中 - 它不足以容纳 64 位指针。 intptr_t type 就是为此而设计的。

关于c++ - 在 64 位机器上编译 32 位代码时,我应该如何处理 "cast from ‘void*’ 到 ‘int’ 丢失精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2024895/

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