Преобразование указателя в целое число
Я пытаюсь адаптировать существующий код для 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-битной машине и как можно более чисто. Любая идея ?