回调函数
回调函数就是自己写的一个函数,但是不能被显式的调用,而是把该函数的地址作为一个别的函数参数来引用,这样用来处理当一些事件发生时可以调用这个自己定义的回调函数,完成一些处理。
使用函数指针作为参数,进行回调。
回调可用于通知机制,例如,有时要在程序中设置一个计时器,每到一定时间,程序会得到相应的通知,但通知机制的实现者对我们的程序一无所知。而此时,就需有一个特定原型的函数指针,用这个指针来进行回调,来通知我们的程序事件已经发生。实际上, SetTimer() API 使用了一个回调函数来通知计时器,而且,万一没有提供回调函数,它还会把一个消息发往程序的消息队列。
比如,我们为几个不同的设备分别写了不同的显示函数:
void TVshow(); void ComputerShow(); void NoteBookShow()…等等。
这是我们想用一个统一的显示函数,我们这时就可以用回掉函数了。void show(void (*ptr)()); 使用时根据所传入的参数不同而调用不同的回调函数 。
不同的编程语言可能有不同的语法,下面举一个c语言中回调函数 的例子,其中一个回调函数 不带参数,另一个回调函数 带参数。
//Test.c
#include <stdlib.h>
#include <stdio.h>