在调试大型项目中,打印信息分级和指出打印所在处,更方便于解决问题。查阅网上的文章并加上自己的修改,实现了个简单的宏打印函数来达到目的。宏函数实现在头文件中,加上了打印级别来控制打印是否输出,打印级别的设定需在调用的.c文件中自定义(这样做是为了能实现不同文件的打印级别能不一样,在调试指定文件或模块的问题是,能起到屏蔽其他无关代码打印的作用)。
typedef.h源码:
#ifndef _TYPEDEF_H_
#define _TYPEDEF_H_
#include < stdarg.h>
#define INFO_OUTPUT 3
#define WARNING_OUTPUT 2
#define DEBUG_OUTPUT 1
#define ERROR_OUTPUT 0
//#define DEBUG_LEVEL DEBUG_OUTPUT
//需在使用以下打印宏的.c文件中定义“DEBUG_LEVEL”变量
#define INFO_PRINT(info,...) \
do{ \
if(DEBUG_LEVEL>=INFO_OUTPUT){\
printf("Info %s,%s,%d:"info"",__FILE__,__FUNCTION__,__LINE__,##__VA_ARGS__);}\
}while(0)
#define WARNING_PRINT(info,...) \
do{ \
if(DEBUG_LEVEL>=WARNING_OUTPUT){\
printf("Warning %s,%s,%d:"info&