如何使用参数分配回调函数

时间:2019-06-09 03:44:17

标签: c++

我需要分配一个具有给定参数的回调函数,因此当事件被触发并调用该回调函数时,它将调用具有给定参数的函数。我看过多个网站,一直在寻找解决方案,但没有运气。可能是我太傻了,该怎么办?

这是我想要做的事情-

void callbackFunction(int someParameter) {
 // Do something here
}

master.ButtonL1.pressed(callbackFunction(3));
// The code above doesn't work, just there to show what I'm wanting to do

2 个答案:

答案 0 :(得分:2)

您可以使用lambda

master.ButtonL1.pressed([]{callbackFunction(3);});

答案 1 :(得分:2)

除了使用the answer by songyuanyao中建议的lambda表达式外,您还可以使用以下方法。

void realCallbackFunction(int someParameter)
{
  // DO the real work
}

static int parameter = 0;
void callbackFunction()
{
   realCallbackFunction(paramter);
}

...

paramter = 3;
master.ButtonL1.pressed(callbackFunction);