BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #25641同步于 2009/6/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请教回调函数

youziboy
2009/6/30镜像同步10 回复
一直对回调函数不是太明白,尤其一句话是“凡是由你设计却由windows系统呼叫的函数,被称为回调函数” 。 什么是系统调用呢?我们自己写的函数那是被谁调用啊? 把自己定义的函数地址作为另外一个函数的参数。 那么这个自己定义的函数就算是回到函数么?回调函数具体机制是什么样的呢? void func() { printf("Hello"); } int main() { FILE * fp = fopen("C:/123.txt"); .... func(); } 那上面函数中fopen,func算是被谁调用。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
jokerlee机器人#1 · 2009/6/30
回调函数一般是消息处理的函数,把某个事件和回调函数链接起来以后,OS会在触发这个事件后调用回调函数处理事件。回调函数是GUI编程的基础
idx001机器人#2 · 2009/6/30
学习之,回调函数一定是系统调用,这话对不?
huyuanmeix机器人#3 · 2009/6/30
子集关系,自己也可以在函数中调用回调函数。 说白了,回调函数跟函数指针差不多。
manager机器人#4 · 2009/6/30
我的理解是,回调函数由别人调用,别人通过你传递给他的函数指针(地址)来执行这个函数
youziboy机器人#5 · 2009/6/30
可否理解成,自定义消息那种运行机制啊。。。
yegle机器人#6 · 2009/6/30
想象这么个程序 在USB插入的时候执行一些特殊的操作 做法有两种: 1、写程序,循环判断当前时间是否有U盘插入 2、程序等着,让操作系统在检测到有U盘插入的时候再通知你的程序 在2里面,你得告诉操作系统,用什么方式通知程序来响应“U盘插入”这个事件,这里你需要做的就是告诉系统用你定义的一个函数来“呼叫”你的程序。这个函数就是回调函数 不仅仅是在操作系统的GUI程序设计里。在所有的其他程序设计里都可能存在有回调函数。 比如说让浏览器在网页加载完全的时候调用一个特定的javascript函数 【 在 youziboy (柚子) 的大作中提到: 】 : 一直对回调函数不是太明白,尤其一句话是“凡是由你设计却由windows系统呼叫的函数,被称为回调函数” 。 : 什么是系统调用呢?我们自己写的函数那是被谁调用啊? : 把自己定义的函数地址作为另外一个函数的参数。 那么这个自己定义的函数就算是回到函数么?回调函数具体机制是什么样的呢? : ...................
willamezhang机器人#7 · 2009/6/30
回调函数其实很简单,最简单的理解就是:A告诉(调用)B,并且给B一个参数C,让B去做某一件事,做完了调用C,就这么简单。这个调用C就相当于通知A,B完成了分配的任务 【 在 youziboy 的大作中提到: 】 : 一直对回调函数不是太明白,尤其一句话是“凡是由你设计却由windows系统呼叫的函数,被称为回调函数” 。 : 什么是系统调用呢?我们自己写的函数那是被谁调用啊? : 把自己定义的函数地址作为另外一个函数的参数。 那么这个自己定义的函数就算是回到函数么?回调函数具体机制是什么样的呢? : ...................
guo机器人#8 · 2009/6/30
"凡是由你设计却由windows系统呼叫的函数,被称为回调函数" 谁说的啊。。 ls的说的很对 你可以简单地把它当做是你给别人的一个函数指针 别人会在合适的时候来调用你这个函数来完成一定的功能 【 在 youziboy (柚子) 的大作中提到: 】 : 一直对回调函数不是太明白,尤其一句话是“凡是由你设计却由windows系统呼叫的函数,被称为回调函数” 。 : 什么是系统调用呢?我们自己写的函数那是被谁调用啊? : 把自己定义的函数地址作为另外一个函数的参数。 那么这个自己定义的函数就算是回到函数么?回调函数具体机制是什么样的呢? : ...................
wks机器人#9 · 2009/6/30
void doSomething(void *onDone()) { printf("Doing Something...\n"); printf("Done!\n"); onDone(); return; } void please_call_this_when_done() { printf("My function is called\n"); } int main() { doSomething(please_call_this_when_done); // please_call_this_when_done is a callback. return 0; }