#include <stdio.h>

typedef void (*fun_cb)(int a, int b);

static fun_cb exe_fun_cb;

void fun_cb_input(int, int);
void setUp_cb(fun_cb); void main()
{
setUp_cb(fun_cb_input);
} void setUp_cb(fun_cb fun_cb_param)
{
printf("\n ready to use callback \n");
exe_fun_cb = fun_cb_param;
if(exe_fun_cb)
{
exe_fun_cb(, );
}
} void fun_cb_input(int param1, int param2)
{
printf("\n this is a callback function!\n");
}

运行结果:

那么,为什么要用回掉函数呢?或者是何时会用到回掉函数呢?

比如我要写一个子模块给你用,   来接收远程socket发来的命令.当我接收到命令后,   需要调用你的主模块的函数,   来进行相应的处理.但是我不知道你要用哪个函数来处理这个命令,     我也不知道你的主模块是什么.cpp或者.h,   或者说,   我根本不用关心你在主模块里怎么处理它,   也不应该关心用什么函数处理它......   怎么办?

使用回调!

最新文章

  1. UVALive 6908---Electric Bike(DP或记录型深搜)
  2. 初学Less
  3. 19、lambda表达式树
  4. AdminLTE-2.2.0 学习
  5. linux自动定时备份web程序和mysql数据库
  6. [codeforces 241]C. Mirror Box
  7. webpack安装配置使用教程详解
  8. C#- 控制台Timer
  9. js快速排序法
  10. codeforces 3D . Least Cost Bracket Sequence 贪心
  11. scrum经验
  12. 【SSRS】入门篇(六) -- 分组和总计
  13. UIApplication,UIWindow,UIViewController,UIView(layer)
  14. beta冲刺3-咸鱼
  15. git pull代码冲突。怪异问题,了解一下
  16. Linux touch命令详解
  17. mysql-day06
  18. 【转】vue+axios 前端实现登录拦截(路由拦截、http拦截)
  19. tomcat部署war包
  20. DOS在这里

热门文章

  1. webform简单控件
  2. web过滤器中获取请求的参数(content-type:multipart/form-data)
  3. CSS 3 选择器
  4. 【ubuntu】系统设置打不开
  5. jquery获取(设置)节点的属性与属性值
  6. junit基础篇、中级篇-实例代码
  7. bat脚本 -- 初步接触
  8. JavaWeb chapter 2 Servlet
  9. Maven+SSM搭建总结(非教程)
  10. 转: MVC设计思想简介