Computer >> Máy Tính >  >> Lập trình >> C ++

Sự khác biệt giữa __PRETTY_FUNCTION__, __FUNCTION__, __func__ trong C / C ++ là gì?

Ở đây chúng ta sẽ xem sự khác biệt giữa __FUNCTION__, __func__ và __PRETTY_FUNCTION__ trong C ++.

Về cơ bản __FUNCTION__ và __func__ giống nhau. Một số phiên bản cũ của C và C ++ hỗ trợ __func__. Macro này được sử dụng để lấy tên của hàm hiện tại. _PRETTY_FUNCTION__ được sử dụng để trả về chi tiết về hàm. Sử dụng nó, chúng ta có thể nhận được hàm nào được sử dụng và nó thuộc lớp nào, v.v.

Ví dụ

#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();
}

Đầu ra

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