###关于回调函数,搜集了一些网上的说法: 1.形象的例子:

你饿了,想吃饭,就一会去问你妈一声”开饭没有啊?”这就正常函数调用. 但是今天你妈包饺子,花的时间比较长,你跑啊跑啊,就烦了.于是你给你妈说,我先出去玩会,开饭的时候打我手机.等过了一阵,你妈给你打电话说”开饭啦,快回来吃饭吧!”

*其中,你告诉你妈打手机找你,就是个你把回调函数句柄保存到你妈的动作.你妈打电话叫你,就是个回调过程. *

2.为什么使用回调函数

本质上都是“你想让别人的代码执行你的代码,而别人的代码你又不能动”这种需求下产生的

别人给你的不是源代码,是一个已经编译好的模块,并且不会给你源代码,那是商业机密,留给你一个接口,你把你要执行的代码以回调函数的形式交给这个接口,由别人编写的模块在需要的时候调用

**3.怎么调用回调函数 **

使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。至于如何定义回调函数,跟具体使用的API函数有关,一般在帮助中有说明回调函数的参数和返回值等。C++中一般要求在回调函数前加CALLBACK,这主要是说明该函数的调用方式。



blog comments powered by Disqus