wwwwwww
驱动牛犊
驱动牛犊
  • 注册日期2003-01-09
  • 最后登录2003-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1132回复:1

请问:在例程和函数的区别?

楼主#
更多 发布于:2003-01-11 19:52
  俺在WINDOWS编程时经常看到回调函数的概念.现在再学WDM时,上面有说到了在操作系统时有回调例程的概念. 请问这两个概念有区别吗啊?
                         谢谢
debug
驱动大牛
驱动大牛
  • 注册日期2002-06-06
  • 最后登录2012-10-15
  • 粉丝0
  • 关注0
  • 积分105分
  • 威望12点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-12 11:51
应该是有区别的,给你举个例子吧
Example in snake.c,

/* declare callback function */
DECLARE_DB_SORT_CB( SnakeSortRecord )
DECLARE_LIST_PROC_CB( Top10ListMsgProc )
//以上是需要应用回调函数的定义举例
...
/* add macro CBFUN around the callback function when passing to system */
if(DbOpen(DBMAMER, CBFUN(SnakeSortRecord) )!=SUCCESS)//打开Snake文件
// CBFUN(SnakeSortRecord) 是用到回调函数指针时需用的函数
return 1;
...
/* add macro CBFUN around the callback function */
DbSetSortFunc(DBMAMER, CBFUN(SnakeSortRecord) );//注册排序函数
...
/* add macro CBFUN around the callback function */
listarea[areanum].unionData.OwnerDraw.fnMsgProc = CBFUN(Top10ListMsgProc);//回调函数

回调函数要定义在主程序的前面,它们的一般格式都如下所示:. void callback_func(
GtkWidget *widget, gpointer func_data );. 调用下面这个方法将允许你将回调函数
与事件的关联断开:. void gtk_signal_disconnect( GtkObject *object, gint id );.

至于回调例程么,偶的理解时为了实现某些功能在程序中预先设置的某一类函数被用作被调用的。

 :D :D
偶爱c/c++,正如世人爱上帝一样。。。。 唐僧正在火焰山下分配工作:“悟空去借芭蕉扇,悟净去找水--八戒,你怎么还有空看偶的个人资料??
游客

返回顶部