读书人

【C++基础之8】函数指针和回调函数

发布时间: 2013-09-16 13:45:21 作者: rapoo

【C++基础之八】函数指针和回调函数

C++很多类库都喜欢用回调函数,MFC中的定时器,消息机制,hook机制等待,包括现在在研究的cocos2d-x中也有很多的回调函数。

1.回调函数

什么是回调函数呢?回调函数其实就是一个通过函数指针调用的函数!假如你把A函数的指针当作参数传给B函数,然后在B函数中通过A函数传进来的这个指针调用A函数,那么这就是回调机制。B函数就是回调函数,而通常情况下,A函数是系统在符合你设定条件的情况下会自动执行,比如Windows下的消息触发等等。那么调用者和被调用者的关系就被拉开了,就像是中断处理函数那样。


2.函数指针

函数指针是一个指针,只是这个指针它不像普通的指针指向是是一个变量,此时它指向的是一个函数,也就是它存储的是一个函数的地址,如果我们愿意的话,可以改变这个它的值,让他由指向funA转变为指向funB,那么这个函数指针的作用就改变了。


3.函数指针的使用3.1函数指针声明

VOID callback_fun(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime){TRACE("CallBack\n");//debug下运行控制台输出CallBack}void CTestCallBackDlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码SetTimer(1,1000,(TIMERPROC)callback_fun);//每一秒回调一次}

读书人网 >C++

热点推荐