Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

__PRETTY_FUNCTION__, __FUNCTION__, __func__ ใน C/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()