什么是C ++中的__FILE __,__ LINE__和__FUNCTION__

在这里,我们将看到C ++中的__FILE,__ LINE__和__FUNCTION__。

文件__

此宏用于获取当前文件的路径。当我们要生成日志文件时,这很有用。以下代码将说明其功能。

示例

#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__会发挥一些有用的作用。请参阅以下示例以了解主意。

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