在C++回调函数中,__FUNCTION__会是调用者还是被调用者?
时间: 2024-04-16 12:26:34 浏览: 42
在c和c++中实现函数回调
在 C++ 的回调函数中,`__FUNCTION__` 是被调用函数(即回调函数)的名称,而不是调用者的名称。它提供了当前函数的名称作为一个字符串常量。
举个例子,请看下面的代码:
```cpp
#include <iostream>
void callbackFunction() {
std::cout << "Callback function: " << __FUNCTION__ << std::endl;
}
void performCallback(void (*callback)()) {
std::cout << "Performing callback from: " << __FUNCTION__ << std::endl;
callback();
}
int main() {
performCallback(callbackFunction);
return 0;
}
```
在这个示例中,`callbackFunction` 是一个回调函数,它被作为参数传递给 `performCallback` 函数。当 `performCallback` 函数被调用时,它会输出自身的名称,并调用传递的回调函数。
当你运行这段代码时,你会看到以下输出:
```
Performing callback from: main
Callback function: callbackFunction
```
这表明在回调函数 `callbackFunction` 中,`__FUNCTION__` 的值是 `"callbackFunction"`,而在 `performCallback` 函数中,`__FUNCTION__` 的值是 `"performCallback"`。
希望这个解答对你有帮助!如果还有其他问题,请随时提问。
阅读全文