嵌入式C语言高级编程之异步日志重构覆盖日志
这篇文章展示了一套非常经典的嵌入式C语言异步日志系统。它不仅仅实现了基础的日志记录,更在代码架构中融入了面向对象思想(多态)、生产者-消费者模型以及防御性编程,最后通过极度严谨的测试用例证明了“日志文件大小限制与循环覆盖”这一核心诉求。
一、 logger.h —— 系统的骨架与多态契约
头文件定义了整个日志系统的“游戏规则”。在C语言中没有 class 和 virtual 关键字,这里通过结构体嵌套和函数指针完美模拟了面向对象中的继承与多态。
#ifndef LOGGER_H
#