在程序中加入合理的打印信息,定位错误出现的文件名,函数名,行号等信息,能更高效的定位到问题的所在。
_FILE__,__FUNCTION__, __LINE__ 从名字可以直接看出来了,对应的:代码文件名,函数名, 行号;
__DATE__,__TIME__ 对应日期和时间。
例1:
#include <iostream>
using namespace std;
void main(void)
{
cout << __FILE__ << endl; // 当前文件路径
cout << __LINE__ << endl; // 当前文件编译行数
cout << __DATE__ << endl; // 编译日期
cout << __TIME__ << endl; // 编译时间
cout << __FUNCTION__ << endl; // 函数名称
}
我们经常可以定义一个变量来快捷表示:
#define WHERE "@[" __FILE__ << "] [" << __FUNCTION__ << "] [" << __LINE__ << "]"
#define WHEN __DATE__ "-" __TIMR__
使用的时候:
cout << WHERE << endl;
cout << WHEN << endl;
就可以了。
写log信息的时候也有以下的写法,一个意思:
cout << "log in "<< __FILE__ << " : " << __FUNCTION__ <<" line: " << __LINE__ << endl;