使用宏编译来格式化调试信息,是一个不错的方法,即可以在需要的时候打印出信息,还可以格式化我们所需要的输出。
#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\r\n", );
DBGFL("YXX\r\n");
结果
[..\Drivers\User\Src\lis3dh.c:]HELOO=
[..\Drivers\User\Src\lis3dh.c:]YXX