登录社区云,与社区用户共同成长
邀请您加入社区
上周调一个串口协议栈,debug了三天,最后发现是我自己把状态机写成了意大利面条——一个case分支里嵌套了三层if-else,还顺手改了全局状态变量。说真的,那一刻我想把键盘吃了。但这其实不怪我。刚做嵌入式那会儿,谁教过设计模式啊?大学课本就讲单片机IO口怎么配,中断怎么开,到了项目里就开始堆功能。今天我聊聊几个真正有用的嵌入式设计模式,都是自己踩坑踩出来的。
本文介绍了如何使用C语言实现面向对象编程和状态机,为嵌入式系统开发提供基础模式。主要内容包括: 用C模拟面向对象: 使用struct封装数据成员,函数指针实现方法 通过不透明指针隐藏实现细节 用me指针模拟this关键字 提供_Init和_Create两种初始化方式 实现多态与虚函数: 在struct中定义函数指针作为虚函数 构造函数中设置默认实现 子类可通过覆盖函数指针实现多态 模拟继承机制:
chunk3 = {","spec_verify_ct": 3, # 最终验证次数"spec_accepted_tokens": 6, # 最终接受token数。