使用宏编译来格式化调试信息,是一个不错的方法,即可以在需要的时候打印出信息,还可以格式化我们所需要的输出。
#define DEBUG 1 #if (DEBUG == 1) #define DBG(Args...) printf(##Args) #define DBGFL(s, Args...) printf("[%s:%d]"##s, __FILE__, __LINE__, ##Args) #else #define DBG(Args...) #define DBGFL(s, Args...) #endif
上面的代码放置在每个C文件的头上。
下面是调用DBGFL
DBGFL("HELOO=%d ", 6458); DBGFL("YXX ");
结果
[..DriversUserSrclis3dh.c:105]HELOO=6458 [..DriversUserSrclis3dh.c:106]YXX