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