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

C++에서 __FILE__, __LINE__ 및 __FUNCTION__이란 무엇입니까?

<시간/>

여기서 우리는 C++에서 __FILE, __LINE__ 및 __FUNCTION__이 무엇인지 볼 것입니다.

__FILE__

이 매크로는 현재 파일의 경로를 가져오는 데 사용됩니다. 이것은 로그 파일을 생성할 때 유용합니다. 다음 코드는 기능을 설명합니다.

예시

#include<iostream>
using namespace std;
int errorLog (const char* file, const std::string& msg){
   cerr << "[" << file << "] " << msg << endl;
}
#define LOG( msg ) errorLog( __FILE__, msg )
main() {
   LOG("This is a dummy error");
}

출력

[D:\Misc C and C++ Questions\test_prog.cpp] This is a dummy error

__LINE__

이 매크로는 소스 파일에서 현재 줄 번호를 찾을 수 있습니다. 이 줄 번호는 정수 값입니다. 로그 문이 생성될 때 __LINE__이 몇 가지 유용한 역할을 합니다. 아이디어를 얻으려면 다음 예를 참조하십시오.>

예시

#include<iostream>
using namespace std;
int errorLog (int line, const std::string& msg){
   cerr << "[" << line << "] " << msg << endl;
}
#define LOG( msg ) errorLog( __LINE__, msg )
main() {
   LOG("This is a dummy error");
}

출력

[12] This is a dummy error

__FUNCTION__

이 매크로는 현재 기능을 반환할 수 있습니다. 로그 문이 생성될 때 __FUNCTION__이 몇 가지 유용한 역할을 합니다. 아이디어를 얻으려면 다음 예를 참조하십시오.

long double rintl(long double argument)

예시

#include<iostream>
using namespace std;
int errorLog (const char* func, const std::string& msg){
   cerr << "[" << func << "] " << msg << endl;
}
#define LOG( msg ) errorLog( __FUNCTION__, msg )
void TestFunction(){
   LOG("Send from Function");
}
main() {
   TestFunction();
   LOG("This is a dummy error");
}

출력

[TestFunction] Send from Function
[main] This is a dummy error