回调函数机制

1.回调机制原理

调用方为主进程,被调用方为子模块。子模块通过内部定义的回调函数对主进程中发生的事件进行响应。

回调函数机制_第1张图片


      int Callback()    ///< 回调函数
      {
          // TODO
          return 0;
      }
      int main()     ///<  主函数
      {
          // TODO
          Library(Callback);  ///< 库函数通过函数指针进行回调
          // TODO
          return 0;
      }

回调似乎只是函数间的调用,和普通函数调用没啥区别。但仔细看,可以发现两者之间的一个关键的不同:在回调中,主程序把回调函数像参数一样传入库函数。也就是说,回调函数其实就是函数指针的一种用法

这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能,这样有没有觉得很灵活?并且当库函数很复杂或者不可见的时候利用回调函数就显得十分优秀。

参考:回调函数原来这么容易理解-云社区-华为云程序员相关的海量资料,点击免费获取 1 什么是回调函数? 首先什么是“回调”呢? 我的理解是:把一段可执行的代码像参数传递那样传...https://bbs.huaweicloud.com/blogs/273798

2.c++实现回调

c++通过std::bind与std::function实现回调机制。

【C++11 回调函数】function与bind实现函数回调功能(二) - fengMisaka - 博客园一、stdfunction与stdbind双剑合璧 因为类成员函数都有一个默认的参数,this,作为第一个参数,这就导致了类成员函数不能直接赋值给std::function,这时候我们就需要std::https://www.cnblogs.com/linuxAndMcu/p/14576162.html

你可能感兴趣的:(c++基础,c++)