C/C++ __FILE__,__LINE__输出调试信息

在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人会选择使用宏定义的方式来输出调试语句。


编译器内置宏,ANSI C标准中有几个标准预定义宏(也是常用的):

__LINE__:    在源代码中插入当前源代码行号;
__FILE__:     在源文件中插入当前源文件名;
__DATE__:   在源文件中插入当前的编译日期
__TIME__:    在源文件中插入当前编译时间;
__STDC__:    当要求程序严格遵循ANSI C标准时该标识被赋值为1;
__cplusplus: 当编写C++程序时该标识符被定义。


测试源码:

#include "stdafx.h"

#ifdef _DEBUG  
    #define DEBUG(format,...)   printf("File: "__FILE__", Line: %05d: "format"\n", __LINE__, ##__VA_ARGS__)  
#else  
    #define DEBUG(format,...)  
#endif //!_DEBUG  


int _tmain(int argc, _TCHAR* argv[])
{
    DEBUG("file line Test %d", 1);

	return 0;
}


测试结果:

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。