所谓回调函数,比较拗口的说法是:被调用的函数调用调用者提供的函数指针。
这种函数形式可以应对被调用函数无法在细节上(比如说参数类型)完成某项同意义的功能的情况(还是很拗口)
简单的例子:
调用一个排序程序A (A为被调用函数),但是A不知道我们想要排序的是int,float,还是char,甚至是其他类型的数据?换言之,A不知道在给了我们两个某类型的数据之后如何判断他们的大小,如果针对每种数据的每个情况编写一下,是一件很头疼的事情,于是,我们提供给A一个接口函数C,这个C提供的是个两个输入数据的比较大小的功能,就是说:在我们调用排序函数时,肯定知道需要比较的数据时什么类型,并且大小比较的逻辑我们是清楚的,所以由调用者实现大小比较的功能给被调用函数调用,从而实现所谓的回调过程,当然,提供给A的是C的指针地址,C的函数声明需要声明为 CALL BACK(FAR PASCAL)类型。