2
การแปลงวิธี C ++ เป็นฟังก์ชัน C ด้วยอาร์กิวเมนต์ตัวชี้เป็นรูปแบบที่ยอมรับได้หรือไม่
ฉันใช้ C ++ กับ ESP-32 เมื่อลงทะเบียนตัวจับเวลาฉันต้องทำสิ่งนี้: timer_args.callback = reinterpret_cast<esp_timer_cb_t>(&SoundMixer::soundCallback); timer_args.arg = this; soundCallbackนี่โทรจับเวลา และสิ่งเดียวกันเมื่อลงทะเบียนงาน: xTaskCreate(reinterpret_cast<TaskFunction_t>(&SoundProviderTask::taskProviderCode), "SProvTask", stackSize, this, 10, &taskHandle); ดังนั้นวิธีการเริ่มต้นในงานที่แยกจากกัน GCC เตือนฉันเสมอเกี่ยวกับการแปลงเหล่านี้ แต่ทำงานได้ตามแผนที่วางไว้ เป็นที่ยอมรับในรหัสการผลิตหรือไม่ มีวิธีที่ดีกว่าในการทำเช่นนี้?