最佳答案
我试图改编一个现有的代码,以64位机器。主要问题是,在一个函数中,前面的编码器使用了 void * 参数,该参数被转换为函数本身的合适类型。一个简短的例子:
void function(MESSAGE_ID id, void* param)
{
if(id == FOO) {
int real_param = (int)param;
// ...
}
}
当然,在一台64位机器上,我会得到这样的错误:
error: cast from 'void*' to 'int' loses precision
我想纠正这一点,以便它仍然工作在一个32位机器和尽可能干净。知道吗?