将参数传递给回调函数
Pass argument to callback function
我正在使用 this library,你可以看到 setCallback
是这样的原型 void Adafruit_ZeroTimer::setCallback(boolean enable, tc_callback cb_type,void (*callback_func)(void)){
我想知道是否可以将参数传递给回调函数?
我是否应该更改库以通过类似的方式完成此操作 void (*callback_func)(int n)
并在我的草图中创建 void my_function_callback(int n){...}
以及何时创建计时器 my_timer.zerotimer.setCallback(true, TC_CALLBACK_CC_CHANNEL0, my_function_callback(10))
?
将参数添加到参数的回调函数类型中,例如 void (*callback_func)(int n)
是正确的方法。
在参数中调用函数而不是像 my_timer.zerotimer.setCallback(true, TC_CALLBACK_CC_CHANNEL0, my_function_callback(10))
那样传递函数是错误的方法。您应该简单地传递函数而不调用它 my_timer.zerotimer.setCallback(true, TC_CALLBACK_CC_CHANNEL0, my_function_callback)
.
我正在使用 this library,你可以看到 setCallback
是这样的原型 void Adafruit_ZeroTimer::setCallback(boolean enable, tc_callback cb_type,void (*callback_func)(void)){
我想知道是否可以将参数传递给回调函数?
我是否应该更改库以通过类似的方式完成此操作 void (*callback_func)(int n)
并在我的草图中创建 void my_function_callback(int n){...}
以及何时创建计时器 my_timer.zerotimer.setCallback(true, TC_CALLBACK_CC_CHANNEL0, my_function_callback(10))
?
将参数添加到参数的回调函数类型中,例如 void (*callback_func)(int n)
是正确的方法。
在参数中调用函数而不是像 my_timer.zerotimer.setCallback(true, TC_CALLBACK_CC_CHANNEL0, my_function_callback(10))
那样传递函数是错误的方法。您应该简单地传递函数而不调用它 my_timer.zerotimer.setCallback(true, TC_CALLBACK_CC_CHANNEL0, my_function_callback)
.