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

被折叠的 条评论
为什么被折叠?



