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

C++ debug 的宏定义(macros)支持变长变量方法小结

2014-03-14 13:58 295 查看
转自http://longriver.me/?p=325

在编写C++/C 的项目,因为调试的需要,经常会输出debug信息,那如何输出debug信息呢?
在C里面可以这样定义一个debug的宏

1
2
3
4
5

#ifdef DEBUG_BUILD
# define DEBUG(x) fprintf(stderr, x)
#else
# define DEBUG(x) do {} while (0)
#endif

到了CPP可以这样定义:

1
2
3

#define DEBUG(x) do { \
if(debugging_enabled){std::cerr<<x<<std::endl;}\
}while(0)

当然你也可以将__FILE__,__LINE__,__func__这些变量放上

如果你想支持变长的变量输出的话

1
2
3
4

#define DEBUG(fmt,...) do {\
fprintf(stderr,fmt,##__VA_ARGS__); \
}\
while(0)

这样以后使用的话 DEBUG("i is : %d",i);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: