Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1009269
  • 博文数量: 327
  • 博客积分: 9995
  • 博客等级: 中将
  • 技术积分: 4319
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-25 11:21
文章存档

2011年(31)

2010年(139)

2009年(157)

我的朋友

分类: C/C++

2009-11-07 14:00:25

对于喜欢用printf Debug的同行来说,最麻烦的莫过于要重复输入很多printf语句,而且模块调试完成后要手动的把它们拿掉。
 
现在介绍一个很好的办法:
#ifdef DEBUG
#define D_STR(_STR_)   printf("f:%s(l:%d)%s\n",__FILE__,__LINE__,_STR_);
#define D_LINE         printf("f:%s(l:%d)-fn:%s\n",__FILE__,__LINE__,__FUNCTION__);
#define D_CHAR(_CHAR_) printf("f:%s(l:%d)%d\n",__FILE__,__LINE__,_CHAR_);
#define D_HEX(_HEX_)   printf("f:%s(l:%d)[%x]\n",__FILE__,__LINE__,_HEX_);
#else
#define D_STR(_STR_)   ;
#define D_LINE         ;
#define D_CHAR(_CHAR_) ;
#define D_HEX(_HEX_)   ;
#endif

 
对于你的debug信息是否显示只用通过DEBUG是否定义来控制。
阅读(880) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-11-21 08:46:01

文中的是通过DEBUG来对整个工程进行全局设置打印开关。"#define ***"+"#ifdef ***"+"#endif"这种写法也可以的。

chinaunix网友2009-11-20 16:27:20

说真的,没明白这文章的意思 只要一个"#define ***"+"#ifdef ***"+"#endif"不就可以了吗?