您的位置:首页 > 编程语言 > C语言/C++

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

2015-01-12 17:20 459 查看
在写程序的时候,总是或多或少会加入一些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;
}


测试结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: