免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 9501 | 回复: 27
打印 上一主题 下一主题

[函数] 请问如何实现回调(Callback)函数? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-23 15:40 |只看该作者 |倒序浏览
不用signal,不用libc之外的库,只用ANSI-C和/或gcc扩展,能做到吗?一直想不明白。。。

论坛徽章:
0
2 [报告]
发表于 2005-03-23 16:54 |只看该作者

请问如何实现回调(Callback)函数?

回调函数  是用  函数指针 实现的吧
看看xml的sax解析器
或ace的实现代码

论坛徽章:
0
3 [报告]
发表于 2005-03-23 17:14 |只看该作者

请问如何实现回调(Callback)函数?

肯定使用函数指针。这个不是问题,问题是,如何确定当某件事发生时,回调函数立即被调用?我就是想知道普通程序中是否有办法捕获“某件事发生”?不用信号的话。
我以前用Gtk+编程的时候用过,但是感觉那是库实现的(想想pthreads库调度都能做,库实现应该是可以加很多东西),很想知道普通程序行不行。

P.S. ACE太大了,暂时要先混饭吃,等过个一两年再研究它

论坛徽章:
0
4 [报告]
发表于 2005-03-23 17:28 |只看该作者

请问如何实现回调(Callback)函数?

恩,事件我没考虑了,我看一下   
xml的sax解析器expat库有很多回调的,也许可以参考

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
5 [报告]
发表于 2005-03-23 17:52 |只看该作者

请问如何实现回调(Callback)函数?

网上有一个讲解信号产生的文章,你可以用google搜搜,是用的borland的一个库讲解的,可能会对你有参考价值。

论坛徽章:
0
6 [报告]
发表于 2005-03-23 22:50 |只看该作者

请问如何实现回调(Callback)函数?

大哥,如果用纯C,你能实现输入输出吗?
既然事件是系统产生的,你必然要调用系统函数来获取它。

如果是你自己产生的事件,你当然不用那些什么singal函数了。

论坛徽章:
0
7 [报告]
发表于 2005-03-24 08:59 |只看该作者

请问如何实现回调(Callback)函数?

纯C当然包括标准库了,呵呵

论坛徽章:
0
8 [报告]
发表于 2005-03-24 09:44 |只看该作者

请问如何实现回调(Callback)函数?

楼主应该给出需要 啥时调用callback function啊.
不然弄个函数指针就可以了,
   void my_callback ();
   atexit (my_callback);

论坛徽章:
0
9 [报告]
发表于 2005-03-24 09:53 |只看该作者

请问如何实现回调(Callback)函数?

原帖由 "飞灰橙" 发表:
楼主应该给出需要 啥时调用callback function啊.
不然弄个函数指针就可以了,
   void my_callback ();
   atexit (my_callback);


say,这样,

  1. struct DS {
  2.         int a;
  3.         void (*func)(void);
  4. };
复制代码

监视a的值,超过某个阀值的话,func指向的函数就被调用。

论坛徽章:
0
10 [报告]
发表于 2005-03-24 11:05 |只看该作者

请问如何实现回调(Callback)函数?

这个, 莫非每执行一条指令后来个中断,
然后在中断例程里检查变量a,
libc, 难于上青天啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP