回调函数&解耦

回调函数

维基百科
先看一看维基百科的解释

回调函数或简称回调(callback),是计算机编程中对某一段可执行代码的引用,它被作为参数传递给另一段代码;预期这段代码将回调(执行)这个回调函数作为自己工作的一部分。这种执行可以是即时的,如在同步回调之中;也可以在后来的时间点上发生,如在异步回调之中。

编程语言以不同方式支持回调,经常将它们实现为子例程、lambda表达式、块或函数指针。

也就是说,将一段可执行代码以参数的形式传递给其他代码,这段可执行代码被其他代码调用被称为回调
如果代码被立即执行就是同步回调,一段时间后执行就是异步回调

那么为什么不使用函数调用的形式而是以参数的形式调用函数呢,这里就不得不提到一个概念:解耦
再程序结构设计中,使用函数调用的形式,代码与代码之间的关联性太强,一旦有所更改就牵一发而动全身,这就是代码和代码之间的耦合性,通过解耦的设计思路,将代码中的功能相互独立,提高程序运行的稳定性和效率

比如说,在函数F1中调用函数F2时传入函数F3的参数,可以实现通过不同的参数传入实现不同的函数功能,

#include<stdio.h>
int add_1(int x) {
	printf("第%d次调用,通过传入add_1函数\n",x);
	return 0;
}
int add_2(int x) {
	printf("第%d次调用,通过传入add_2函数\n", x);
	return 0;
}
int add_3(int x) {
	printf("第%d次调用,通过传入add_3函数\n", x);
	return 0;
}
int add(int y, int (*aa)(int)) {
	printf("通过mian函数调用add()\n");
	aa(y);
	printf("调用结束\n");
	return 0;
}
int main()
{
	int x = 0;
	add(x++, add_1);
	add(x++, add_2);
	add(x++, add_3);
	return 0;
}

运行结果:

通过mian函数调用add()
第0次调用,通过传入add_1函数
调用结束
通过mian函数调用add()
第1次调用,通过传入add_2函数
调用结束
通过mian函数调用add()
第2次调用,通过传入add_3函数
调用结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值