一文通俗带过回调函数

回调函数是通过函数指针调用的函数,常作为参数传递给其他函数。它提供了系统编程和应用编程之间的灵活性,允许应用程序自定义执行特定任务的方式。回调函数的优势在于其灵活性,适用于模块间相互独立且存在调用关系的情况,特别是在确保层次间的单向依赖时。
摘要由CSDN通过智能技术生成

1回调函数定义

回调函数就是一个通过函数指针调用的函数。即是把函数指针作为参数传入另外一个函数,当这个指针被用来调用其所指向的函数时,该函数就是回调函数。

通俗的解释
一般来说,编程分为两类:系统编程和应用编程。所谓系统编程,通俗的就是编写库函数;而应用编程就是利用写好的各种库去实现自己想要实现的具体功能,这也就是常说的应用开发,系统程序员(编写库函数的)会给自己的库留一些接口,即是应用程序编程接口API,一般情况下,我们的应用程序会调用已经写好 的库函数,实现预先已经写好的库函数功能,但是有些库函数却要求应用程序需要传入一个函数(函数作为入参)然后才能实现相应的功能,这个被传入然后又被调用的函数就是回调函数。
打一个比方,有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方式,可以是打客房电话,也可以是去敲客房门,睡得死怕耽误事的,还可以要求往自己头上浇水。在这里,“叫醒”这个行为是旅客提供的,相当是库函数,但是叫醒的方式是由旅客决定并告诉旅馆的,也就是回调函数,而旅客告诉旅馆怎么叫醒自己的动作,也就是把回调函数传入库函数的动作成为登记回调函数

2回调函数的实质

就是将函数A作为入参传入另外一个函数B,在函数B中执行A。函数就是地址,所以入参的形参为函数指针。

3回调函数的优势

同样都是调用函数,为什么需要回调函数这样的方式而不是直接调用函数呢?
回调函数在库函数和应用函数之间提供了非常大的灵活性,另外回调函数不仅仅在应用和库函数之间。任何时候,我们只要想要实现类似前者的灵活性,都可以调用回调。

void callBack_water(void)
{
   
	printf("泼水叫醒\n");
}
void callBack_phone(void)
{
   
	printf("电话叫醒\n");
}
void callBack_knock(void)
{
   
	printf("敲门叫醒\n"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值