从C过渡到c++的3个原因

文章作者:Jacob Beningo

几十年来,在嵌入式软件工程师中一直有一个关于他们应该使用C还是c++的争论。MCU厂商提供的软件大部分是用C…

几十年来,在嵌入式软件工程师中一直有一个关于他们应该使用C还是c++的争论。大部分的微控制器厂商提供的软件是用C语言提供的,事实上,56%的嵌入式软件是用C语言编写的2019嵌入式市场调查.然而,c++已经慢慢地流行起来,大约有23%的新嵌入式软件项目是用c++编写的。C接近50th周年纪念,也许是时候开始从C过渡到c++了。以下是开发人员应该考虑做出更改的三个原因。

原因#1:改进的架构实现

C编程语言确实通过函数指针为开发人员提供了封装和一些基本的多态性功能。然而,C实际上是一种过程性语言,不提供继承或组合等机制,无需额外的努力。这可能会使系统的总体架构设计不那么理想,进而影响软件的重用和维护,甚至限制其灵活性。

c++为开发人员提供了实现真正面向对象的设计模式、开发真正的抽象和实现设计模式的能力,这些设计模式不仅可以从一个应用程序重用到另一个应用程序,而且还可以提高架构的灵活性。这允许软件被重用,这反过来可以导致更快的产品开发、更短的客户端应用程序定制时间以及其他许多优点。

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

在当今复杂和创新的开发环境中,开发人员不仅需要尖端的硬件解决方案,还需要尖端的软件和语言解决方案。这意味着用于编写软件的语言需要是最新的,以便为开发人员提供实现他们的系统所需的最新工具。C语言的最后一次更新是在2018年,听起来像是最近更新的。然而,如果你看看标准,没有添加任何新功能,唯一的变化是修复了2011年发布的上一个版本的问题!是的,我们花了7年的时间才出台了一个修正了上一个问题的修订标准!

看c++,标准委员会承诺每三年更新一次标准!下一个版本预计将在2020年发布,最后一个版本将在2017年发布。与C语言不同的是,新版本不仅修复了bug,还为语言添加了新特性和功能,从而使其成为最新的语言,并提供了与Python等其他语言竞争所需的工具。新标准甚至删除了不受欢迎的功能,如三字符。

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

直到3-4年前,我为微控制器编写的大多数嵌入式软件都使用C编程语言。c++总是提供比C更丰富的特性集,但似乎在那个时候,编译器已经达到了一个点,即编译后的代码是等价的或更好的。就在那时,我开始钻研c++,发现这门语言变得多么丰富,我还需要学习更多。

c++允许开发人员利用以下特性:

  • 模板——允许代码独立于任何特定类型
  • 动态多态性——允许在运行时分配实现
  • 异常处理-捕获错误(让任何C开发人员震惊)
  • 编译时静态if语句
  • 虚函数

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

结论

c++是一种现代的、不断发展的语言,而C似乎是静态的、发展得慢得多。事实上,在编程语言快速进化的时代,C语言正成为众所周知的恐龙。当开发人员面临他们的系统中不断增加的复杂性时,他们需要一种允许他们灵活和最大化重用的语言。许多来自“旧时代”的抱怨不再适用于c++,特别是考虑到c++编译器已经变得如此高效。如果有一个时间可以开始过渡到c++,那么这个时间很可能就是。

在接下来的几篇文章中,我们将更深入地研究c++,以及开发人员如何利用它来设计和构建微控制器驱动程序。

- - - - - -雅各Beningo是嵌入式软件顾问、顾问和教育家,目前与十几个国家的客户合作,以极大地改变他们的软件、系统和流程。

留下你的评论