Function 将回调函数作为参数发送的原因

Function 将回调函数作为参数发送的原因,function,Function,回调函数是一种特殊的函数,它将指向函数的指针作为参数传递给调用方函数 回调函数用于事件驱动的场景,即当且仅当特定事件发生时,调用方函数调用回调函数 我的疑问是,发送回调函数作为唯一参数的原因是什么 我们不能在如下所示的调用方函数体内调用它吗 而不是使用下面的 如果我的想法是错误的?可以按照您建议的方式进行,但是将回调作为参数发送到另一个函数的想法是使它们成为适合任何用途的非静态可调用对象,而不是每个用例一个实现。此外,由于作用域限制,您并不总是有权调用您希望调用的回调函数。在这种情况下,您不能有

回调函数是一种特殊的函数,它将指向函数的指针作为参数传递给调用方函数

回调函数用于事件驱动的场景,即当且仅当特定事件发生时,调用方函数调用回调函数

我的疑问是,发送回调函数作为唯一参数的原因是什么

我们不能在如下所示的调用方函数体内调用它吗

而不是使用下面的


如果我的想法是错误的?

可以按照您建议的方式进行,但是将回调作为参数发送到另一个函数的想法是使它们成为适合任何用途的非静态可调用对象,而不是每个用例一个实现。此外,由于作用域限制,您并不总是有权调用您希望调用的回调函数。

在这种情况下,您不能有两个回调函数。例如,在Javascript中,承诺可以有两个回调函数:一个用于resolve,一个用于reject。我看不出在给定的场景中你会怎么做。如果一个参数既可以是函数,也可以是配置对象,那么它们也很好。回调不仅用于事件驱动的场景,而且考虑到如果它们是,您仍然不希望只执行一条逻辑。在事件之外回调如何有用的一个例子是算法,例如,如果您正在编写排序算法,您可以允许用户传递他们自己关于排序应该如何工作的规则,即排序…,int a,int b{return a>b}sort…,int a,int b{return ab.MagSqr}是的,我现在知道了,对于多事件驱动的场景,第一个代码不起作用,但是如果我对code1本身多线程中的所有事件应用并行执行呢?@Phiter
caller() 

{ 

    .............
    if(event) {
        callback_function();
    }
}
caller(....,&callback_function) 

{ 
    .............

}