有谁知道回调函数与普通函数的区别?

mayaxu 2003-11-13 08:10:07
我发现网上说的只是把回调函数当成钩子函数了,难道没有其他的用法了么?
我在程序中定义了一个回调函数,发现可以当作普通函数用!!!
难道回调函数主要就是当作钩子函数??
...全文
170 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
会思考的草 2003-11-14
  • 打赏
  • 举报
回复
sorry,犯了一个概念错误:__fastcall没有压栈动作。抱歉。
会思考的草 2003-11-14
  • 打赏
  • 举报
回复
拜托!这种问题问之前搜索一下以前的帖子ok?
怎么这么多人就喜欢在这种概念题上纠缠不清呢??!!
想知道__stdcall、__cdecl、__fastcall、__thiscall、PASCAL等修饰符的区别,就回去好好看看汇编!看看各个函数在编译的时候压栈动作是怎样的!
CQP 2003-11-14
  • 打赏
  • 举报
回复
回调函数是种常用手段,它其实是你写好的一个函数,并期待别人或者是系统在合适的时候调用它。举个例子,用 API 控制 Modem 拨号,如果拨号函数简单地设计成这样:

bool Dial(...) // 发起拨号,拨通后返回

Modem 不是一拨就通的,你的程序就会在拨号时陷入停滞,无法响应其它任何事件。所以这个函数被设计成这样(只是例子哦,不是说真的有这样的函数,实际的函数你可以去看看 MSDN 中对 RasDial 的描述):

void Dial(DIAL_CALLBACK* pConnected ...)

这里的 pOnConnected 参数就是要你传入一个 CALLBACK 函数指针,从而拨通时系统会自动调用你的这个函数。此时你知道已经拨通了,可以做一些处理。

够明白了吧????


crystal_heart 2003-11-14
  • 打赏
  • 举报
回复
callback 没有me指针
AkiraChing 2003-11-13
  • 打赏
  • 举报
回复
http://www.flounder.com/callbacks.htm
ablefirst 2003-11-13
  • 打赏
  • 举报
回复
窗口函数都是回调函数
msadmin 2003-11-13
  • 打赏
  • 举报
回复
普通函数是由程序员调用的,回调函数是由windows调用的,
aachenG 2003-11-13
  • 打赏
  • 举报
回复
这是用途,不是区别。回调用途多着呢。
与普通函数的确没内在的区别,或者说,区别就是函数指针的灵活性。
huanyun 2003-11-13
  • 打赏
  • 举报
回复
有不同的 回调函数只能访问静态变量, 除非用参数
Windows的消息都是回调函数方式

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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