我在ESP-32上使用C ++。注册计时器时,我必须这样做:
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总是警告我这些转换,但它按计划进行。
生产代码中可以接受吗?有一个更好的方法吗?
std::bind
将对象指针作为第一个方法参数吗?