浅谈C++之回调函数

说起回调函数往往和回调函数指针联系在一起;问题来了我们如何申明回调函数、如何执行回调函数和如何使用回调函数指针?他们之间存在怎样的联系?解答这些问题前先搞懂什么是函调函数?

回调函数:程序通过参数把该函数的函数指针传递给了其它函数,在那个函数里面调用这个函数指针就相当于调用这个函数,这样的过程就叫回调,而被调用的函数

标准定义typedef void (*SCT_XXX)(LPVOID lp, const CBParamStruct& cbNode);

一、回调函数的申明

在使用函调函数类型的指针需要先声明,包括函数自身的类型、参数的类型等等信息

浅谈C++之回调函数_第1张图片

 

1:声明函调函数、2:定义函调函数指针、3:定义回调函数的载体函数

  • 回调函数的使用
  • 浅谈C++之回调函数_第2张图片

 

1:创建回调函数所属的类;2:实现回调函数3:初始化SetParam

下面展示SetParam()函数的具体实现,如下:

浅谈C++之回调函数_第3张图片

 

由上图不难看到,在SetParam函数中实际上传过来的是函调函数指针,这就意味着SetParam中通过pCallbackFun参数得到RecvCallBack函数的地址;

四、总结:

以上是解释了回调函数和回调函数指针的关系;回调的本质是函数指针传递,理解回调机制和理解函数指针是其灵活运用的前提;

参考实例:https://blog.csdn.net/yjhdxflqm/article/details/50482119

原理:https://blog.csdn.net/sinat_38183777/article/details/83958887  

 

欢迎关注小编微信公众号 "IT菜籽U"

你可能感兴趣的:(C++,Linux)