相关疑难解决方法(0)

将指针转换为整数

我正在尝试将现有代码调整为64位机器.主要问题是在一个函数中,前一个编码器使用void*参数,该参数在函数本身中转换为合适的类型.一个简短的例子:

void function(MESSAGE_ID id, void* param)
{
    if(id == FOO) {
        int real_param = (int)param;
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,在64位机器上,我收到错误:

error: cast from 'void*' to 'int' loses precision
Run Code Online (Sandbox Code Playgroud)

我想纠正这个问题,以便它仍然可以在32位机器上运行并且尽可能干净.任何的想法 ?

c++ 64-bit gcc casting 32-bit

77
推荐指数
5
解决办法
15万
查看次数

标签 统计

32-bit ×1

64-bit ×1

c++ ×1

casting ×1

gcc ×1