浅谈回调函数:

  什么是回调函数呢,其实学过C的童鞋都知道,在C里面,有一个神奇的东西,叫做指针,可指向任何可定义(可什么)的东西,函数自然也在内。

  怎么解释回调呢,从实际应用场景出发,


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

使用回调!

使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。 

  其实,我们不难看出, 回调,顾名思义,是从往回掉,也正符合第一段引用所述,而从第二段中,从C的角度分析,即使用函数作为指针的方式传递。

附上C中格式:

void callback(int times, void (* print)(int))

传递函数名字即可,void (* print)(int)  参数什么,函数指针,函数的返回值与参数类型

posted @ 2015-10-13 22:40  Lance_lou  阅读(168)  评论(0编辑  收藏  举报