__PRETTY_FUNCTION__;
时间: 2023-07-31 10:09:15 浏览: 127
`__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__` 宏,它提供了当前函数的名称而不包含类型信息。
相关问题
__PRETTY_FUNCTION__
__PRETTY_FUNCTION__是一个宏,用于返回函数的详细信息,包括函数所属的类等信息。它与__func__和__FUNCTION__不同,后两者仅返回函数的名称,而__PRETTY_FUNCTION__返回更详细的信息。
在引用的例子中,可以看到使用__PRETTY_FUNCTION__时,输出的结果是"void MyClass::Class_Function()",其中包含了函数所属的类名和函数的参数信息。而使用__func__和__FUNCTION__时,只能得到函数的名称,无法获取其他详细信息。
因此,如果你需要获取函数更详细的信息,包括函数所属的类等信息,可以使用__PRETTY_FUNCTION__宏。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [__func__,__FUNCTION__,__PRETTY_FUNCTION__的区别](https://blog.csdn.net/CFH1021/article/details/121372590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [__PRETTY_FUNCTION__, __FUNCTION__, __func__ 在C/C++中的差异?](https://blog.csdn.net/weixin_40463424/article/details/124566427)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
__pretty_function__
__pretty_function__是一个C++编译器内置的预定义宏,用于获取当前函数的名称。它返回的是一个字符串常量,包含了函数的名称、参数类型和返回值类型等信息。在调试和日志输出等场景中,可以使用__pretty_function__来输出函数的名称,方便调试和排查问题。
阅读全文