将指针转换为整数
我正在尝试将现有代码改编为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位计算机上且尽可能干净地工作。任何的想法 ?