从C到C++过渡的3个原因
从C到C++过渡的3个原因
3 reasons to transition from C to C++
几十年来,嵌入式软件工程师们一直在争论他们是否应该使用C或C++。根据2019年嵌入式市场调查,微控制器制造商提供的软件大部分是用C语言提供的,事实上,56%的嵌入式软件是用C语言编写的。然而,C++已经逐渐普及,大约23%的新嵌入式软件项目都是用C++编写的。随着C接近第五十周年,现在可能是开始从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++,这很可能就是它。