回调函数:void(*func)(int)和void(func)(int)之间的区别

use*_*309 5 c c++ function callback

所以让我们说我有一个功能:

void foo (int i){
    cout << "argument is: " << i << endl;
}
Run Code Online (Sandbox Code Playgroud)

我将此功能传递给:

void function1 (void(callback)(int), int arg){
    callback(arg);
}

void function2 (void(*callback)(int), int arg){
    callback(arg);
}
Run Code Online (Sandbox Code Playgroud)

这两个功能是否相同?这两者有什么区别吗?

Vla*_*cow 1

它们是相同的。具有函数类型的参数被转换为指向函数类型的指针。