__PRETTY_FUNCTION__;
时间: 2023-07-31 08:09:15 浏览: 119
gdb-commands.zip_Quick_gdb_unix commands
`__PRETTY_FUNCTION__` 是一个预定义的宏,在编译时会被替换为包含当前函数的带有详细类型信息的字符串。
该宏用于获取当前函数的名称和类型信息,通常用于调试和日志记录目的。它在 C++ 中是标准化的宏,但在不同的编译器中可能有不同的名称或实现。
例如,考虑以下代码片段:
```cpp
#include <iostream>
void myFunction() {
std::cout << __PRETTY_FUNCTION__ << std::endl;
}
int main() {
myFunction();
return 0;
}
```
在上述代码中,`myFunction` 函数调用了 `__PRETTY_FUNCTION__` 宏,并将其输出到标准输出流。使用 g++ 编译并运行该程序,输出可能类似于:
```
void myFunction()
```
可以看到,`__PRETTY_FUNCTION__` 宏展开后显示了当前函数的详细类型信息。
需要注意的是,`__PRETTY_FUNCTION__` 是一个非标准的宏,它在标准中没有定义。因此,使用它可能会导致代码的可移植性问题。为了编写可移植的代码,建议使用标准的 `__func__` 宏,它提供了当前函数的名称而不包含类型信息。
阅读全文