c/c++ 回调函数

来源:互联网 发布:js二级联动下拉菜单 编辑:程序博客网 时间:2024/05/10 12:23
回调一般是指一个模块中提供一个过程,通过另一个模块的API进行注册,然后由后者负责调用。简言之,前者负责提供函数或子过程,后者负责调用。
举两个最常见最简单的例子:
1。Windows的计时器机制:应用程序的开发者编写一个函数,用来完成一件事情,然后通过Windows系统的API:SetTimer注册到系统中,于是每当用户设置的时间间隔到来时,前面说的那个函数就被系统自动调用执行。这个函数就是回调函数,应用程序员编写(提供)它,而系统负责调用它。

2。图形界面中的事件机制:程序员编写一个函数,用来完成用户按下菜单上某个按钮所进行的动作。程序员编写这个函数的时候并不清楚使用程序的使用者会在什么时候去点击那个按钮,他仅仅知道每当按钮被点击,这个函数就会被执行。这个函数也是回调函数。他由应用程序员提供,而更底层的基于消息驱动的框架程序模块或系统模块负责在用户点击按钮后自动调用他。

回调只是实现某些特殊目的的一种编程机制而已,回调函数本身并没有什么奇特的,它仍然只是个一般的函数。

更严格地讲,“回调函数”这个概念并不是非常清晰,其实C/C++中的main函数由系统在加载应用程序并完成初始化后自动调用,不也是一种回调函数吗?我们通常只负责提供main,并不负责调用main。


实现方式:

1.指针函数

2.内嵌类

0 0