debug.h
#ifndef __DEBUG_H__
#define __DEBUG_H__
#ifdef ERR_DEBUG
#define err_printf(enble, fmt, args...) debug_printf(enble, fmt, ##args)
/*添加##为了允许省略可变参数添加*/
//#define err_printf(enble, fmt, ...) debug_printf(enble, fmt, ##__VA_ARGS__)
#else
#define err_printf(enble, fmt, args...) ((void *)0)
#endif
int debug_printf(int enble, char *fmt, ...);
#endif //__DEBUG_H__
debug.c
#include <stdio.h>
#include <stdarg.h>
#include "debug.h"
int debug_printf(int enble, char *fmt, ...) {
int ret = 0;
char buf[256];
va_list args;
if (enble == 1) {
va_start(args, fmt);
ret = vsprintf(buf, fmt, args);
va_end(args);
//打印红色字体提醒
printf("\033[31mERR: %s\033[0m", buf);
}
return ret;
}
/*测试*/
int main(int argc, const char *argv[]) {
err_printf(1, "nihao\n");
return 0;
}
编译方式:
使用debug版本:
gcc debug.c -D DEBUG