回调函数就是对函数指针的应用。
定义一个函数指针:
void (*a) (int b); //定义一个函数指针a
a是一个函数指针,既然是函数指针就可以把其它函数的地址赋值给a,如下:
int c (char c1); int c2 (char c2); int c3 (char c3); //任意普通函数
a = c; a=c2; a=c3; //函数注册
把函数c,c2,c3,赋值给函数指针a的操作就是函数注册,就是一个指针赋值应用而已。
void f (int i){
//某函数
a (i) ; //使用函数指针a,这时的a可以是c,c2,c3,具体看你给a指向哪
}
**a(i) 就是函数回调。**函数a指向的是函数c的地址,因为上面有做函数注册 。
总结:
函数注册就是把函数指针传给别的模块使用,给别的模块之前可以先设好函数指针指向谁。
为什么要用回调函数?
回调函数可以