注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刺马的博客

 
 
 

日志

 
 

回调函数  

2009-10-09 13:27:04|  分类: 程序 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

 

    作为c语言来说,只有函数的说法。因此不管是回调函数还是函数都是函数,在定义上是没有区别的。

置于在某些系统中,有些函数是你写并被你自己调用,这就是你说的“过程函数”

而另一些函数是由你来写但是在某些情况下不光由你来调用还可能被系统调用,这种函数就是“回调函数”。  

    既然在某些情况下,系统也要调用则这种函数在定义上必须符合系统预先定义的一些标准,比如窗口函数是最普遍的回调函数系统规定了这个函数必须有一个LRESULT的返回值,以及它需要的四个参数LRESULT function(hWnd, message, wParam, lParam)。

    回调函数就是为系统提供一个接口,系统就会记录下这个函数的地址,当某个事件发生的时候,系统就可以调用你提供的这个接口干你想干的事情。

比如系统有这样一个功能:

void 注册开水报警器(void (* 我的开水报警器)(void));

我们自己写个函数:

void 我的开水报警器(void)

{

   printf(“水开了!!\n”);

}

然后调用系统提供的接口注册我们的函数

开水注册报警器(我的开水报警器);

这样,指定事件发生的时候,就会调用我们自己写的函数。

    回调函数(callback   function)是一种供系统调用的函数。在设置回调函数时,将你的回调函数的地址作为参数送给系统。当系统调用时(如事件发生,启动功能...),就自动会执行你的回调函数。程序本身不需要执行该函数。常见的回调函数在   directX(OpenGL),Driver   Design中要枚举驱动程序,显示模式等。

  评论这张
 
阅读(368)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018