回调函数:通过函数指针由某个函数在特定场合下调用指针指向的函数,这个过程叫回调函数
将函数的指针(地址)作为参数传递给另一个函数,当这个指针用来调用其所指向的函数时,便是回调函数。
回调函数不由函数者(程序员)实现直接调用,而是在特定环境下由其他函数调用,用于对该事件或条件进行响应。
场景:程序员不好手工调用某函数时,交给其他函数控制时机调用该函数。
c/c++中回调函数的用法:
1.定义一个函数
void func()
{
cout<<"…"<<endl;
}
2.定义一个函数指针
格式:返回值 (*指针名)(参数类型,参数类型);
void (*p)(); //这里这个函数名叫p,指针可以用来被指向一个无返回值,无参数的函数
3.函数指针指向对应格式的函数 //可在其他函数中调用
p = func;
4.通过函数指针调用其指向的函数
p();//函数指针调用函数的这一步叫做回调函数
要定义一个函数指针数组的话,
格式为
void (*func[5])(); //每个成员都是一个函数指针
初始化可以是
void(*func[5])() = { dofunc1, dofunc2, dofunc3 };
函数指针作为函数参数:
void work(void (*p)())
{
///
p();
///
}
void work