诛仙卡级青云华闪:[我的笔记]回调函数

来源:百度文库 编辑:九乡新闻网 时间:2024/05/06 06:36:39

1  回调函数
    作为c语言来说,只有函数的说法。因此不管是回调函数还是函数都是函数,在定义上是没有区别的。
置于在某些系统中,有些函数是你写并被你自己调用,这就是你说的“过程函数”
而另一些俄函数是由你来写但是在某些情况下不光由你来调用还可能被系统调用,这种函数就是“回调函数”。   
    既然在某些情况下,系统也要调用则这种函数在定义上必须符合系统预先定义的一些标准,比如窗口函数是最普遍的回调函数系统规定了这个函数必须有一个LRESULT的返回值,以及它需要的四个参数LRESULT function(hWnd, message, wParam, lParam)。

    回调函数就是为系统提供一个接口,系统就会记录下这个函数的地址,当某个事件发生的时候,系统就可以调用你提供的这个接口干你想干的事情。
比如系统有这样一个功能:
void 注册开水报警器(void (* 我的开水报警器)(void));
我们自己写个函数:
void 我的开水报警器(void)
{
   printf(“水开了!!\n”);
}
然后调用系统提供的接口注册我们的函数
开水注册报警器(我的开水报警器);
这样,指定事件发生的时候,就会调用我们自己写的函数。

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