使用__FILE__和__LINE__定位错误
问题:当运行时错误产生时,我怎样才能得到包含C++文件名和行号的字符串信息?
回答:在C++中的__FILE__预编译指示器包含了被编译的文件名,而__LINE__则包含了源代码的行号。
其中__FILE__是一个字符串 char *,__LINE__是一个整形的数字。
实例如下:
#include <stdio.h>
int main()
{
printf("This fake error is in %s on lind %d\n",__FILE__,__LINE__);
return 0;
}
输出:
This fake error is in test.c on lind 5
常用的预定义宏:
__FILE__ 源文件的名称 如XXX.cpp
__LINE__ 代码在源文件中是第几行
__DATE__ 源文件完成日期如Aug 17 2011
__TIME__ 源文件完成时间如19:31:13
__TIMESTAMP__ 源文件完成日期时间如Wed Aug 17 19:27:36 2011