当前位置: 首页 > 科技观察

从C过渡到C++的3个理由

时间:2023-03-14 12:49:23 科技观察

几十年来,嵌入式开发人员一直在争论他们应该使用C还是C++。大多数时候,微控制器制造商提供用C编写的软件,事实上,根据2019年嵌入式市场调查,56%的嵌入式软件是用C编写的。但是,C++越来越受欢迎,大约有23%的新嵌入式软件用C++编写的项目。随着C接近50周年,现在可能是开始从C过渡到C++的时候了。以下是开发人员应考虑更改的三个原因。原因一:改进的架构实现C语言确实通过函数指针为开发者提供了封装和一些基本的多态能力。但是,C确实是一种过程语言,如果不付出额外的努力,就无法提供继承或组合等机制。这会使系统的整体架构设计不太理想,影响软件的重用和维护方式,甚至限制其灵活性。C++为开发人员提供了实现真正的面向对象设计模式、开发真正的抽象和实现设计模式的能力,这些设计模式不仅可以从一个应用程序重用到下一个应用程序,而且还允许更大的架构灵活性。这允许重复使用软件,进而可以加快产品开发、减少客户端应用程序的定制时间以及许多其他优势。理由二:C++是一门不断发展的现代语言在当今复杂和创新的开发环境中,嵌入式开发人员不仅需要尖端的硬件解决方案,还需要尖端的软件和语言解决方案。这意味着用于编写软件的语言必须是最新的,以便为开发人员提供实现其系统所需的最新工具。C语言最后一次更新是2018年,听上去像是最近更新的。但是,如果您查看标准,没有添加任何新功能,唯一的变化是对2011年发布的先前版本的修复!是的,修订后的标准用了七年的时间才解决了旧标准的问题!看看C++,标准委员会承诺每三年更新一次标准!与C不同的是,新的修订不仅仅是错误修复,而是为该语言添加新的特性和功能,使其成为最新的语言,并提供与Python等其他语言竞争所需的工具。新标准甚至删除了已弃用的功能,例如三角图。原因3:C++是一种更丰富的语言直到3-4年前,我为微控制器编写的大多数嵌入式软件都是用C编程语言编写的。C++总是提供比C更丰富的功能集,但那时编译器似乎已经达到编译代码等效或更好的地步。那时我开始全身心投入学习C++这门语言,发现这门语言变得多么丰富,让我学这门语言的东西也多了起来。C++允许嵌入式开发人员利用以下功能:模板——允许独立于任何特定类型编写代码动态多态性——允许在运行时进行分配以实现异常处理——捕获错误(对任何C开发人员来说都是惊人的)编译静态if语句虚拟功能这些只是几个例子,还有更多!所有这些工具都让嵌入式系统编程变得更轻松。结论C++是一种现代的、不断发展的语言,C似乎是静态的,而且发展速度要慢得多。随着嵌入式开发人员在他们的系统中面临越来越复杂的问题,他们需要一种允许他们灵活并最大限度地重用的语言。许多“过时”的抱怨不再适用于C++,尤其是C++编译器变得多么高效。如果曾经有时间开始转换为C++,那么可能就是这个时候了。