如何定义调试用的DEBUG打印宏
来源:互联网 发布:片头片尾制作软件 编辑:程序博客网 时间:2024/06/06 08:54
如何定义调试用的DEBUG打印宏 【原创】
在写代码的时候,非常有必要加一些DEBUG的打印信息,但是在release版本中,可以把这些打印信息去掉能缩减代码量。
因此,我们需要定义一个打印的DEBUG宏,当此宏未定义时,该打印实现为空。
如下:
#define __DEBUG_PRINT__
#ifdef __DEBUG_PRINT__ // 对于DEBUG版本,增加打印信息
static int debug_print( fmt, ... ){
char buf[128] ;
va_list arg ;
va_start(arg, fmt)
vsnprintf( buf , sizeof(buf), fmt, arg); // 把可变参数fmt格式化打印到buf缓冲区,类似sprintf的用法
va_end(arg);
printf("[DEBUG] %s /n", buf ); //把buf打印出来
};
#define DEBUG_PRINT(_flag, _m , _fmt, ... ) do{ /
if(_flag & _m) / /* 该打印信息必须要有个FLAG和一个位掩码开关, */
debug_print( ); /* 只是一种分级打印或设置打印开关的实现方式而已 */
/
}while(0)
#else
#define DEBUG_PRINT(_flag, _m , _fmt , ... ) // 对于RELEASE版本,把__DEBUG_PRINT__宏关闭
#endif
这里涉及到va_list可变参数的用法
重要的是DEBUG_PRINT这个宏的定义方法(用do_while结构)和 分级打印的思路(使用掩码或者别的FLAG开关等方式)
可以由许多许多不同的实现方式。
此方法仅供参考
- 如何定义调试用的DEBUG打印宏
- 关于DEBUG调试用的宏定义
- 宏定义实现程序中debug信息的打印
- 如何在程序中写log日志(定义log级别:error,warn, info, debug; 宏定义打印不同级别的日志; 程序中引用宏定义即可)
- debug的宏定义
- 一种方便调试的打印语句宏定义
- 宏定义实现调试信息的打印控制
- 如何关闭Mybatis的DEBUG log打印
- 在程序中根据_DEBUG定义打印DEBUG信息的宏
- [linux c] gdb如何debug宏定义
- Makefile,如何传递宏定义DEBUG
- Makefile,如何传递宏定义DEBUG
- 调试信息的宏定义:能够打印出文件名、函数、行数、日志,方便调试
- c c++ debug打印调试的使用 do{}while
- Nodejs进阶:用debug模块打印调试日志
- 如何调试debug smartforms
- ******************** 宏定义的调试 ********************
- debug 宏追加打印的小例子
- 字符串截取substr substring slice
- fedora 使用技巧
- 关于java初级J2SE谁能帮我传个课程总结文档
- RS232(DB9)接口信号线定义
- Hibernate 与 Spring 多数据源的配置
- 如何定义调试用的DEBUG打印宏
- 返回比较表达式比较结果/计算表达式值的函数
- 流水帐
- 在windows下建立linux开发环境
- web 图片优化
- 杂乱之android的style、Theme的应用
- 2个offer的比较,望大牛们指点,尽情拍砖
- linux自动挂载
- SQLite3命令大全