前言
在编写项目时,我们通常需要日志输出来帮助我们追踪程序执行的内容,以便在出现BUG时较为方便的复现,并在调试完成后快速的关闭过于详细的LOG输出,避免干扰使用中的体验,在函数中一个一个的增加printf函数相比之下较为不便,并且也不便于完成调试后的注释
为了解决这个问题,我们可以利用C语言中的宏定义来快速的构建一个自定义的调试功能,在能够输出详细信息的同时还可以一键开关
正文
编译器内置宏:
编译器内置了一些宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,也可以巧妙地帮我们输出非常有用的调试信息
ANSI C标准中有几个标准预定义宏:
- LINE:等同于当前源代码中所在位置的行号;
- FILE:等同于当前源文件名;
- DATE:在源文件中插入编译时的日期
- TIME:在源文件中插入编译时的时间;
定义用来打log的语句
使用以上这几个宏定义,可以简单的构建一个打LOG语句,其具体实现方法如下
#include "stdio.h"
// 这里选择__DEBUG__作为开关,注释掉下面这一行,则可以直接关闭程序中的DEBUG输出
#define __DEBUG__
#ifdef __DEBUG__
// 如果对__DEBUG__进行定义,则将对DEBUG(format,...)中的内容按照printf的方式进行输出
#define DEBUG(format,