10
การแปลงตัวชี้เป็นจำนวนเต็ม
ฉันกำลังพยายามปรับรหัสที่มีอยู่ให้เป็นเครื่อง 64 บิต ปัญหาหลักคือในฟังก์ชันหนึ่ง coder ก่อนหน้านี้ใช้อาร์กิวเมนต์ 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 บิตและสมบูรณ์ที่สุด ความคิดใด ๆ ?