在编写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);