1.回调机制原理
调用方为主进程,被调用方为子模块。子模块通过内部定义的回调函数对主进程中发生的事件进行响应。
int Callback() ///< 回调函数
{
// TODO
return 0;
}
int main() ///< 主函数
{
// TODO
Library(Callback); ///< 库函数通过函数指针进行回调
// TODO
return 0;
}
回调似乎只是函数间的调用,和普通函数调用没啥区别。但仔细看,可以发现两者之间的一个关键的不同:在回调中,主程序把回调函数像参数一样传入库函数。也就是说,回调函数其实就是函数指针的一种用法。
这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能,这样有没有觉得很灵活?并且当库函数很复杂或者不可见的时候利用回调函数就显得十分优秀。
2.c++实现回调
c++通过std::bind与std::function实现回调机制。