作者|釜薪君
公众号|嵌入式杂牌军
前言
今天给小伙伴们介绍一种不错的调试意识,即用宏定义的中的省略号与宏开关,统一打开或关闭调试信息,特别适用于自己对打印函数进行封装的情况。
一、实现原理
1.宏开关
#define DEBUG
与下面的宏条件判断语句一起使用,决定使用哪个宏定义分支。
2.宏分支
用#ifdef,#else,#endif,根据宏开关进行宏使用分支的判断。
3.看不见的空格
#define DebugPrintf(…) 此处为空格
此句是将DebugPrintf(…)替换为空格,括号中的内容忽略。
二、实例代码
1.实例代码
下面代码可以批量开关打印调试代码。
#include <stdio.h>
#include <stdlib.h>
#define DEBUG // 打印调试宏开关,需要时定义,不需要注释掉
#ifdef DEBUG
#define DebugPrintf printf // 定义了DEBUG使用此分支
#else
#define DebugPrintf(...) // 注释掉DEBUG定义使用此分支
#endif
int main(int argc, char *argv[])
{
int i = 2;
DebugPrintf("\nTest value is:%d\n",i); // 调用打印函数,关闭宏,此句为空语句
return 0;
}
2.运行结果
1)定义宏的情况。
2)不定义宏(注释掉宏定义)的情况。
今天就到这吧,希望对小伙伴有所帮助哈!
欢迎关注公众号~