C++ debug 的宏定义(macros)支持变长变量方法小结
2014-03-14 13:58
295 查看
转自http://longriver.me/?p=325
在编写C++/C 的项目,因为调试的需要,经常会输出debug信息,那如何输出debug信息呢?
在C里面可以这样定义一个debug的宏
到了CPP可以这样定义:
当然你也可以将__FILE__,__LINE__,__func__这些变量放上
如果你想支持变长的变量输出的话
这样以后使用的话 DEBUG("i is : %d",i);
在编写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 |
1 2 3 | #define DEBUG(x) do { \ if(debugging_enabled){std::cerr<<x<<std::endl;}\ }while(0) |
如果你想支持变长的变量输出的话
1 2 3 4 | #define DEBUG(fmt,...) do {\ fprintf(stderr,fmt,##__VA_ARGS__); \ }\ while(0) |
相关文章推荐
- Java 子类初始化父类的构造方法 成员变量不支持多态
- (转)java判断string变量是否是数字的六种方法小结
- PHP中判断变量为空的几种方法小结
- 让PC标签 num 参数支持变量的方法
- IIS8中添加WCF支持几种方法小结[图文]
- (转)java判断string变量是否是数字的六种方法小结
- php去除换行符的方法小结(PHP_EOL变量的使用)
- php去除换行符的方法小结(PHP_EOL变量的使用)
- (struct)结构体变量作为函数参数调用的方法小结
- 各浏览器对click方法的支持差异小结
- PHP中判断变量为空的几种方法小结
- IIS8中添加WCF支持几种方法小结[图文]
- 各浏览器对click方法的支持差异小结
- PHP中判断变量为空的几种方法小结
- 在运行时,知道宏定义(字符串)所代表的值(运行时,知道变量名称的一种方法)
- 黑马程序员——OC学习小结------成员变量以及对应的set、get方法
- java判断string变量是否是数字的六种方法小结
- PHP中判断变量为空的几种方法小结
- php去除换行符的方法小结(PHP_EOL变量的使用)
- php去除换行符的方法小结(PHP_EOL变量的使用)