「C与指针心得」22.函数指针-回调函数

本节重点讲的函数指针中的回调函数。

回调函数

含义:

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。


机制:

⑴定义一个回调函数;
⑵提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者;
⑶当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。


举例:

1.我们在路上遇到一个好多年没见到的朋友,要了朋友的手机好,跟他说我回去打给你

1)遇见朋友–主函数
2)我打电话给朋友,通过朋友的手机号,找到朋友–(回调)


2.寄快递的情形

打电话给快递员,告诉他我的地址(理解成回调函数的地址),快递员在有空的时候根据这个地址来找到你取件。

1)打电话给快递员,告诉他我的地址–主函数(我的地址–回调函数地址)
2)快递员处理完其他事情后,通过这个地址(回调)来找到你取件,执行完回调里面的内容。


示例:

/*回调函数*/
void * call_phone_number(int number )
{
printf("phone number = %d\n",number); /*通过号码找到朋友*/

}

/*调用函数*/
void start_call( void *call_back(int number))
{
int phone_number = 12345;
call_back(phone_number);
}

int main(void)
{
start_call(call_phone_number);
return 0;
}
「C与指针心得」22.函数指针-回调函数


分享到:


相關文章: