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