低档单片机用不着 c++, 中档一般 c 就可以应付得很好, 高档 c++ 可以一显身手。
我认为在嵌入式中, c++ 最重要的特性是抽象, 这不是用class, struct 来封装数据那么简单, 而是基于系统的综合分析进行归纳; 另一个重要的特性就是这里被认为不重要的多态。如果用封装和继承来实现数据抽象, 那么行为接口的抽象可由多态(override) 完成。至于其他的如operator overload, template; 多重继承等等则可有可无, 运行时态对象的类型判断, 在pc下有很大的必要, 但对于嵌入式完全没有必要, 这也不是 c++ 的特性。
C++ 不仅仅是一个语言工具, 更重要的是为大型的嵌入式软件提供了一个可以构造更强大而灵活的架构的可能, 良好而灵活的架构对于日后的维护,扩充,升级必不可少。小型软件不行了可以推倒重来, 大型软件很难这么做。
如果想在单片机技术上再上一层楼, c++ 一定要掌握。 c++ 的很多思想可以用到中低档的 mcu 上。 |