[C]深入解析条件式日志宏的设计原理
代码解释:条件式日志宏
这段代码定义了一个名为 log_info
的宏,用于在满足特定条件时输出信息级别的日志。让我逐行解释它的工作原理:
宏结构分析
#define log_info(format, ...) \if (LOG_IS_ENABLE(LOG_INFO)) \log_print(__LOG_INFO,NULL,"[Info]: " _LOG_TAG format "\r\n", ## __VA_ARGS__)
这个宏包含三个主要部分:
-
宏名称和参数:
log_info(format, ...)
format
:日志消息的格式字符串(如"温度: %d°C"
)...
:可变参数列表,对应格式字符串中的占位符
-
条件判断:
if (LOG_IS_ENABLE(LOG_INFO))
LOG_IS_ENABLE
:一个判断日志级别是否启用的宏或函数LOG_INFO
:表示信息级别的常量- 只有当该日志级别被启