浏览 6617 次
锁定老帖子 主题:C语言中的debug调试宏
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-28
最后修改:2010-12-28
综合了网上能找到的几个版本,我自己改写了如下的调试宏。
#ifndef MYDEBUG #define MYDEBUG #endif #define MYDEBUG_PREFIX "--Hank Gong--" //Debug information verbosity: lower values indicate higher urgency #define MYDEBUG_OFF 0 #define MYDEBUG_ERR 1 #define MYDEBUG_WRN 2 #define MYDEBUG_TRC 3 #define MYDEBUG_INF 4 extern int MYDEBUG_LEVEL; #define mydebug_off(msg...) \ do{ \ if (MYDEBUG_LEVEL>=MYDEBUG_OFF) { \ printf(MYDEBUG_PREFIX msg); \ } \ }while(0) #define mydebug_err(msg...) \ do{ \ if (MYDEBUG_LEVEL>=MYDEBUG_ERR) { \ printf(MYDEBUG_PREFIX msg); \ } \ }while(0) #define mydebug_wrn(msg...) \ do{ \ if (MYDEBUG_LEVEL>=MYDEBUG_WRN) { \ printf(MYDEBUG_PREFIX msg); \ } \ }while(0) #define mydebug_trc(msg...) \ do{ \ if (MYDEBUG_LEVEL>=MYDEBUG_TRC) { \ printf(MYDEBUG_PREFIX msg); \ } \ }while(0) #define mydebug_inf(msg...) \ do{ \ if (MYDEBUG_LEVEL>=MYDEBUG_INF) { \ printf(MYDEBUG_PREFIX msg); \ } \ }while(0) #define mydebug(level, msg...) mydebug_##level(msg) #undef assert #define assert(x) { \ if (!(x)) { \ printf(__FILE__ ":%d assert " #x " failed\n", __LINE__); \ }\ } //Usage: //just include this file and define MYDEBUG_LEVEL like // //int MYDEBUG_LEVEL=MYDEBUG_ERR // //in the program use the command by //mydebug(off|err|wrn|trc|inf, "test %d with %s", 100, "this"); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-08-06
代码很简练,风格也不错 !
应该是综合各种Debug代码后的版本! |
|
返回顶楼 | |