LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1088|回复: 4

请各位帮我看一段代码

[复制链接]
发表于 2006-9-20 15:29:59 | 显示全部楼层 |阅读模式

  1. void terminate_process(void (*handler_routine) (event_t event, void *msg), BYTE token)
  2. {
  3.     event_t    event;


  4.     if (handler_routine != NULL)
  5.     {
  6.         event.extended_event = EVNT_INT_TERMINATE;
  7.         event.fields.event_mod1 = token;

  8.         handler_routine(event, NULL);
  9.     }
  10. ....
  11. }
复制代码


请问关于函数指针handler_routine,在这里的作用是什么?
为什么要这么写?
发表于 2006-9-22 10:41:00 | 显示全部楼层
个人觉得他的功能应该和c++的重载作用差不多.
函数指针指向函数的开始地址,而不局限于要用函数名来调用函数.

我是个初学者,意见仅供参考,和你一起期待牛人来指教
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-22 11:41:21 | 显示全部楼层
期待大牛的出现
回复 支持 反对

使用道具 举报

发表于 2006-9-22 12:31:54 | 显示全部楼层
cho 兄都已经给出答案了, alphajin 兄还想知道什么呢? 不要把别人的回复当废话, 这样做是不太礼貌的
回复 支持 反对

使用道具 举报

发表于 2006-9-22 12:36:25 | 显示全部楼层
有点儿像win的东东(见到BYTE)。void (*handler_routine) ()可能是一个进程函数的指针,void terminate_process()用于向这个指针指向的函数的进程发送结束事件。

至于使用函数指针的理由,是因为在C语言中,函数不能作为参数传递,因此需要使用指针。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表