请问回调函数是怎么回事,怎么使用?请高手帮忙!

xusenrl 2004-11-22 05:15:31
请问回调函数是怎么回事,怎么使用?请高手帮忙!
例如:
T_SetupCallback setupCallback;

SISubTable[subTableID].setupCallback( subTableID, filterNumber, version, handle );


EITSubTableID = SISubTableCreate( &EITDetails, SISectionEIT, SITableEIT, SITableEITTimeout, SISetupEIT );


static void SISetupEIT( T_SubTableID subTableID, UINT32 filterNumber,
INT32 version, UINT32 handle )
...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻开心 2004-11-22
  • 打赏
  • 举报
回复
windows消息里面很多都是回调函数

比如,你写的一段代码,需要加入别人的处理函数,而这个函数具体如何操作你根本不知道
你只能调用这个外部函数
但是你确不知道这个函数的指针的时候,使用这个回调函数

回调函数的用法
你写一个程序,给别人使用,这个函数接收一个函数指针,这个指针指向的函数就是回调函数,这个函数由别人完成;然后调用你这个接口设置这个函数指针
你程序,在需要调用别人的函数的时候,使用这个传入的函数指针对应的函数就可以了。

windows里面许多响应消息就是这样的
当一个时间产生的时候,windows系统不知道改如何处理,于是就调用你的响应函数,这个响应函数本身就相当于回调函数。

greenteanet 2004-11-22
  • 打赏
  • 举报
回复
看看这些说法吧,楼主....
http://www-900.ibm.com/developerWorks/cn/linux/l-callback/index.shtml
picoolo1124 2004-11-22
  • 打赏
  • 举报
回复
调用(calling)机制从汇编时代起已经大量使用:准备一段现成的代码,调用者可以随
时跳转至此段代码的起始地址,执行完后再返回跳转时的后续地址。CPU为此准备了现
成的调用指令,调用时可以压栈保护现场,调用结束后从堆栈中弹出现场地址,以便自
动返回。借堆栈保护现场真是一项绝妙的发明,它使调用者和被调者可以互不相识,于
是才有了后来的函数和构件,使吾辈编程者如此轻松愉快。若评选对人类影响最大之发
明,在火与车轮之后,笔者当推压栈调用。
话虽这样说,此调用机制并非完美。回调函数就是一例。函数之类本是为调用者准
备的美餐,其烹制者应对食客了如指掌,但实情并非如此。例如,写一个快速排序函数
供他人调用,其中必包含比较大小。麻烦来了:此时并不知要比较的是何类数据--整
数、浮点数、字符串?于是只好为每类数据制作一个不同的排序函数。更通行的办法是
在函数参数中列一个回调函数地址,并通知调用者:君需自己准备一个比较函数,其中
包含两个指针类参数,函数要比较此二指针所指数据之大小,并由函数返回值说明比较
结果。排序函数借此调用者提供的函数来比较大小,借指针传递参数,可以全然不管所
比较的数据类型。被调用者回头调用调用者的函数(够咬嘴的),故称其为回调
(callback)。
xusenrl 2004-11-22
  • 打赏
  • 举报
回复
另外调用函数如下:
Create( T_SubTableDetails* details,
T_SectionCallback sectionCallback,
T_SubTableCallback tableCallback,
T_TimeoutCallback timeoutCallback,
T_SetupCallback setupCallback )
{

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧