关于回调函数的一点思考
在 A 函数中将参数与 C 函数传递给 B 函数,B函数调用 C 函数;B 函数调用的动作称为回调,C 函数称为回调函数。
举栗
#include
// 回调函数a
void callback_a(int var_a){
printf("Call callback_a, var: %d\n\n", var_a);
}
// 回调函数b
void callback_b(int var_b){
printf("Call callback_b, var: %d\n\n", var_b);
}
// 回调动作
void callback_act(int x, void (*callback) (int var)){
printf("Call callback_act, var_x: %d\n\n", x);
callback(x);
}
void main(){
int a = 1, b = 2;
callback_act(a, callback_a);
callback_act(b, callback_b);
printf("Main program has done.");
}
执行结果:
Call callback_act, var_x: 1
Call callback_a, var: 1
Call callback_act, var_x: 2
Call callback_b, var: 2
Main program has done.
仔细想想回调函数的作用完全可以通过普通函数来达到,其实回调函数最大的意义在于解耦,降低了代码之间的耦合度。
栗子
栗子
and***_e@163.com2年前 (2019-11-17)