在C / C ++中,__PRETTY_FUNCTION__,__FUNCTION__,__func__有什么区别?

在这里,我们将看到C ++中__FUNCTION __,__ func__和__PRETTY_FUNCTION__之间的区别是什么。

__FUNCTION__和__func__基本上是相同的。某些旧版本的C和C ++支持__func__。该宏用于获取当前函数的名称。_PRETTY_FUNCTION__用于返回有关该函数的详细信息。使用此函数,我们可以获取使用哪个函数,以及该函数属于哪个类,等等。

示例

#include<iostream>
using namespace std;
class MyClass{
   public:
      void Class_Function(){
         cout << "The result of __PRETTY_FUNCTION__: " << __PRETTY_FUNCTION__ << endl;
      }
};
void TestFunction(){
   cout << "Output of __func__ is: " << __func__ << endl;
}
main() {
   cout << "Output of __FUNCTION__ is: " << __FUNCTION__ << endl;
   TestFunction();
   MyClass myObj;
   myObj.Class_Function();
}

输出结果

Output of __FUNCTION__ is: main
Output of __func__ is: TestFunction
The result of __PRETTY_FUNCTION__: void MyClass::Class_Function()