正宗的宏定义printf

写作目的:找了网上大佬的一系列解答,再结合自己的实际经验,总结一下宏定义printf。

printf就是医生的听诊器,可以将函数运行的值打印出来,从而得知逻辑是否正确,哪个值出了问题,当然也可以用GDB,我觉得重要的值还是要打印出来,不太重要的值可以通过GDB调试,不然老是GDB效率较低。

1.代码如下

#include #define DEBUG_ENABLE  1
#define LOG_LEVEL     DEBUG_ALL#define MODULE "BIGGG"
#define ERR    "ERR"
#define WARN   "WARN"
#define INFO   "INFO"#define DEBUG_COLOR_ERR       "\033[1;31m"				//高亮红色
#define DEBUG_COLOR_WARN      "\033[1;33m"				//高亮黄色
#define PRINT_COLOR_INFO      "\033[1;37m"              //白色
#define DEBUG_COLOR_END       "\033[0;33m"				//灰色enum DEBUG_LEVEL
{DEBUG_OFF = 0,DEBUG_ERR,DEBUG_WARN,DEBUG_INFO,DEBUG_ALL
};#define DEBUG(MODULE, LEVEL, FMT, ARGS...) \
do \
{ \if(DEBUG_ENABLE && (DEBUG_##LEVEL <= LOG_LEVEL)) \{ \printf(DEBUG_COLOR_##LEVEL); \printf("[%s]:[%s]:[%s]:%d "FMT"\n", MODULE, __FILE__, __FUNCTION__, __LINE__, ##ARGS); \printf(DEBUG_COLOR_END); \} \
} \
while(0)int main()
{int i = 0;DEBUG(MODULE, WARN, "%s:%d", "nb", i);return 0;
}

2.在需要的地方添加值打印即可。

友情链接:

printf打印设置颜色和等级_键盘上跳舞的精灵-CSDN博客_printf打印等级

printf 的宏定义版本_与其用泪水悔恨昨天,不如用汗水拼搏今天-CSDN博客_printf 宏定义

怎样写参数个数可变的宏_aobai219的专栏-CSDN博客


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部