[英]why is the name callback for the callback function?
请忽略或严格纠正语法。 更重要的一点是为什么回调函数的名称回调?
例如:-
function drive(int x, int y);
function breaker(int x, int y, callbackFunction);
int function main(){
drive(23,24); // why is this called a "call to a function"?
breaker(23,45,drive); // why "drive" here is called a callback and why not "call to function" like other function.
}
function drive(int x, int y){
printf("%d%d",x,y);
}
function breaker(int x, int y, callbackFunction){
callbackFunction(x,y);
}
这里的重点不是语法的准确性。 关键是我在main方法中调用“驱动器”,即所谓的“调用函数”,当我将“ drive”函数作为“ breaker”中其他函数的参数传递时,“ drive”被称为回调但为什么? 任何对函数的调用都必须引用函数并应执行该函数,但是为什么名称有所不同?
breaker(23,45,drive); // why "drive" here is called a callback and why not "call to function" like other function.
这不会调用drive()
。 这是使用功能drive
的地址作为参数的breaker
的调用。 括号的不存在表示我们不调用drive,而是将函数的地址作为参数传递。
这样做的目的是使breaker()
可以根据需要多次调用drive()
。
编辑:
名称回调是因为您正在调用的函数正在回调您的函数。 当带有回调参数的函数由其他人提供时,这一点更加明显。
以qsort
函数为例。 qsort
是一个标准的C函数,它带有一个比较器回调函数和一个要排序的数组。 只要需要比较数组中的两个元素,就可以调用qsort()
和qsort()
调用比较器。 因此,标准的C函数会回调您的代码。
breaker(23,45,drive);
这将用驱动器替换callbackFunction
function breaker(int x, int y, drive){
drive(x,y);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.