搬砖:回调函数需要知道的_+(#4*&^%$()_)_**^!@%^)

107 篇文章 1 订阅

函数指针,指向函数的指针 ------ 函数指针(function pointer)https://blog.csdn.net/str999_cn/article/details/78591369

回调函数,写的比较通俗易懂了 https://blog.csdn.net/u011700281/article/details/20049835 

安装钩子后立即执行回调函数 https://bbs.csdn.net/topics/390598839

c++ 注册回调函数研究

如何用注册回调实现监听 https://blog.csdn.net/mrailence/article/details/52276853

再论无处不在的回调机制---注册与回调 https://blog.csdn.net/stpeace/article/details/23792971 

函数回调机制、异步函数回调机制图例详解 https://blog.csdn.net/zhangliangzi/article/details/52066560

 

异步调用和回调函数 https://blog.csdn.net/kobejayandy/article/details/17654967

 

指针函数是函数。返回值为指针的函数,

函数指针是指针。function pointer ,fuck it pointer

函数指针和指针函数用法和区别 https://blog.csdn.net/luoyayun361/article/details/80428882

定义不同

指针函数本质是一个函数,其返回值为指针。
函数指针本质是一个指针,其指向一个函数。
写法不同

指针函数:int* fun(int x,int y);
函数指针:int (*fun)(int x,int y);
可以简单粗暴的理解为,指针函数的*是属于数据类型的,而函数指针的星号是属于函数名的。
再简单一点,可以这样辨别两者:函数名带括号的就是函数指针,否则就是指针函数。

 

 

个人分类: 架构与设计

       异步调用在应用程序框架中具有广泛的应用,并且特指多线程情况下。它同Windows的消息循环机制,消息响应,消息队列,事件驱动机制以及设计模式中的观察者模式等都是紧密相关的。 在单线程方式下,计算机是一台严格意义上的冯·诺依曼式机器,一段代码调用另一段代码时,只能采用同步调用,必须等待这段代码执行完返回结果后,调用方才能继续往下执行。有了多线程的支持,可以采用异步调用,调用方和被调方可以属于两个不同的线程,调用方启动被调方线程后,不等对方返回结果就继续执行后续代码。被调方执行完毕后,通过某种手段通知调用方:结果已经出来,请酌情处理。


       回调函数用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,它将这个数据交给上层应用层来做进一步处理,这在分层的数据通信中很普遍。其实回调和API非常接近,他们的共性都是跨层调用的函数。但区别是API是低层提供给高层的调用,一般这个函数对高层都是已知的;而回调正好相反,他是高层提供给底层的调用,对于低层他是未知的,必须由高层进行安装。这个安装函数其实就是一个低层提供的API,安装后低层不知道这个回调的名字,但它通过一个函数指针来保存这个回调,在需要调用时,只需引用这个函数指针和相关的参数指针。  其实:回调就是该函数写在高层,低层通过一个函数指针保存这个函数,在某个事件的触发下,低层通过该函数指针调用高层那个函数。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值