Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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()