什么是回调函数 精妙比喻:回调函数还真有点像您随身带的 BP 机:告诉别人号码,在它有事情时 Call您 回调用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,将这个数据交给上层应用层来做进一步处理,这在分层的数据通信中很普遍
其实回调和 API 非常接近,他们的共性都是跨层调用的函数
但区别是 API 是低层提供给高层的调用,一般这个函数对高层都是已知的;而回调正好相反,他是高层提供给底层的调用,对于低层他是未知的,必须由高层进行安装,这个安装函数其实就是一个低层提供的 API,安装后低层不知道这个回调的名字,但它通过一个函数指针来保存这个回调,在需要调用时,只需引用这个函数指针和相关的参数指针
其实:回调就是该函数写在高层,低层通过一个函数指针保存这个函数,在某个事件的触发下,低层通过该函数指针调用高层那个函数
Callback Function 什么是回调函数
回调函数是应用程序提供给 Window s 系统DLL 或其它 DLL 调用的函数,一般用于截获消息、获取系统信息或处理异步事件
应用程序把回调函数的地址指针告诉DLL,而 DLL 在适当的时候会调用该函数
回调函数必须遵守事先规定好的参数格式和传递方式,否则 DLL 一调用它就会引起程序或系统的崩溃
通常情况下,回调函数采用标准 Window sAPI 的调用方式,即__stdcall,当然,DLL 编制者可以自己定义调用方式,但客户程序也必须遵守相同的规定
在__stdcall 方式下,函数的参数按从右到左的顺序压入堆栈,除了明确指明是指针或引用外,参数都按值传递,函数返回之前自己负责把参数从堆栈中弹出
理解回调函数
程序在调用一个函数(function)时(通常指api