几十年来,嵌入式软件工程师之间一直在争论他们应该使用C还是C ++。根据2020年嵌入式市场调查,在大多数情况下,微控制器制造商提供的软件都以C语言提供,实际上,有56%的嵌入式软件是用C语言编写的。但是,C ++逐渐流行起来,大约23%的新嵌入式软件项目是用C ++编写的。用C接近其50 个周年,它可能是时间开始转换从C到C ++。这是开发人员应考虑进行更改的三个原因。

原因1:改进的架构实施

C编程语言确实通过函数指针为开发人员提供了封装和一些基本的多态性功能。但是,C确实是一种过程语言,并且无需付出额外的努力就不会提供诸如继承或组合之类的机制。这会使系统的整体体系结构设计不太理想,从而影响软件的重用和维护方式,甚至限制其灵活性。


C ++为开发人员提供了实现真正的面向对象设计模式,开发真正的抽象以及实现设计模式的能力,这些设计模式不仅可以在一个应用程序中重复使用,而且可以提高体系结构的灵活性。这允许软件被重用,进而可以带来更快的产品开发,更短的客户应用定制时间以及许多其他优点。

原因2:C ++是一种不断发展的现代语言

在当今复杂而创新的开发环境中,开发人员不仅需要尖端的硬件解决方案,还需要尖端的软件和语言解决方案。这意味着用于编写软件的语言必须是最新的,以便为开发人员提供实施其系统所需的最新工具。C语言的最后一次更新是在2018年,听起来好像最近已经更新了。但是,如果您查看该标准,则不会添加任何新功能,唯一的更改就是要修复2011年以前的发行版中的问题!是的,花了七年的时间才制定出修订的标准,以解决最后一个标准中的问题!

纵观C ++,标准委员会致力于每三年更新一次标准!下一个修订版预计于今年2020年发布,最新版本将于2017年发布。与C语言不同,新修订版不仅是错误修复,还为该语言添加了新的特性和功能,从而使它可以是最新的并提供与其他语言(例如Python)竞争所必需的工具。新标准甚至删除了不推荐使用的功能,例如三字母组合。

原因3:C ++是一种更丰富的语言

我为微控制器编写的大多数嵌入式软件直到3-4年前都使用C编程语言。C ++始终提供比C更丰富的功能集,但是大约在那时,编译器已经达到了已编译代码等效或更好的地步。那是我开始学习C ++的时候,发现该语言变得多么丰富,以及让我学习该语言的更多知识。

C ++允许开发人员利用以下功能:

模板–允许独立于任何特定类型编写代码

动态多态性–允许在运行时分配实现

异常处理–捕获错误(任何C开发人员都震惊)

编译时静态if语句

虚拟功能

这些只是几个例子,还有更多!所有这些工具使对嵌入式系统的编程变得更加容易。

结论

C ++是一种现代且不断发展的语言,其中C似乎是静态的,并且发展缓慢。实际上,在编程语言迅速发展的时代,C正在成为众所周知的恐龙。随着开发人员面临着系统内日益增加的复杂性,他们需要一种语言,以使其具有灵活性并最大限度地提高重用性。过去的许多抱怨不再适用于C ++,特别是考虑到C ++编译器已经变得多么高效。如果曾经有时间开始过渡到C ++,那就很可能了。