免费注册 查看新帖 |

Chinaunix

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

回调函数怎么被激活的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-29 20:21 |只看该作者 |倒序浏览
找了写咚咚,看了半天,还是不理解

mycallback()
{...}

myregister (mycallback)
{...}


那怎么激活myregister呢?



不知道该发到c++板还是这里,呵呵,先发到这里吧

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2006-04-29 23:54 |只看该作者
我的理解:
你知道signal函数吧,它需要一个函数作为它的一个参数注册,
那个函数我就认为是回掉函数。
这个函数和某个信号绑定,当这个信号发生时,
会自动调用这个函数的。

论坛徽章:
0
3 [报告]
发表于 2006-05-02 10:06 |只看该作者
嗯!
我想找个例子看看,
定义一些宏定义,然后根据发送一些宏定义到某地方,调用函数就运行。
但具体怎么用我一点也不知道,呵呵

论坛徽章:
0
4 [报告]
发表于 2006-05-02 18:53 |只看该作者
经典回调函数,看 libc 的 qsort 函数。

论坛徽章:
0
5 [报告]
发表于 2006-05-03 13:06 |只看该作者
怎么找到libc和qsort?

我只找到了
arch/mips/boot/elf2ecoff.c:     qsort(ph, ex.e_phnum, sizeof(Elf32_Phdr), phcmp);

论坛徽章:
0
6 [报告]
发表于 2006-05-03 14:09 |只看该作者
qsort 代码在 glibc 中,不在内核:)
罢了,给你个简单的例子好了。

  1. void for_each_int (int *start, int *end, void (*pf)(int *)) {
  2.   for ( ; start != end; ++start )
  3.     pf( start );
  4. }
复制代码

改自 STL 的 std::for_each 函数。这里第三个参数是一个函数指针(STL 版本为一个模板参数),在 for_each_int 内部间接调用。因为 pf 为客户程序提供,而 for_each_int 为库中提供,因此称为这样的调用“回调”。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP