浅谈回调函数:
什么是回调函数呢,其实学过C的童鞋都知道,在C里面,有一个神奇的东西,叫做指针,可指向任何可定义(可什么)的东西,函数自然也在内。
怎么解释回调呢,从实际应用场景出发,
比如我要写一个子模块给你用, 来接收远程socket发来的命令.当我接收到命令后, 需要调用你的主模块的函数, 来进行相应的处理.但是我不知道你要用哪个函数来处理这个命令, 我也不知道你的主模块是什么.cpp或者.h, 或者说, 我根本不用关心你在主模块里怎么处理它, 也不应该关心用什么函数处理它...... 怎么办?
使用回调!
使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。
其实,我们不难看出, 回调,顾名思义,是从往回掉,也正符合第一段引用所述,而从第二段中,从C的角度分析,即使用函数作为指针的方式传递。
附上C中格式:
void callback(int times, void (* print)(int))传递函数名字即可,void (* print)(int) 参数什么,函数指针,函数的返回值与参数类型
use some of my own time, creativity, energy and talent to help people.