服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 从C到C++过渡的3个原因

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

2021-12-07 22:47粤嵌教育 C/C++

几十年来,嵌入式开发人员一直在争论他们是否应该使用C或C++。大多数情况下,微控制器制造商提供的软件都是用C语言编写的,事实上,根据2019年嵌入式市场调查,56%的嵌入式软件是用C语言编写的。

几十年来,嵌入式开发人员一直在争论他们是否应该使用CC++。大多数情况下,微控制器制造商提供的软件都是用C语言编写的,事实上,根据2019年嵌入式市场调查,56%的嵌入式软件是用C语言编写的。然而,C++已经逐渐普及,大约23%的新嵌入式软件项目都是用C++编写的。随着C接近第五十周年,现在可能是开始从C到C++的过渡时间了。以下是开发人员应该考虑改变的三个原因。

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

原因1:改进了体系结构实现

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

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

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

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

看C++,标准委员会承诺每三年更新一次标准!与C语言不同的是,新的修订版不仅仅是bug修复,而是为该语言添加了新的特性和功能,使其成为最新的语言,并提供与其他语言(如Python)竞争所需的工具。新标准甚至删除了不推荐使用的功能,如三角图。

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

直到3-4年前,我为微控制器编写的大多数嵌入式软件都使用C编程语言。C++总是提供比C更丰富的特征集,但在那个时候编译器似乎已经达到编译代码是等效的或更好的点。那时我开始潜心学习C++语言,发现语言变得多么丰富,还有更多的东西让我学习语言。C++允许嵌入式开发人员利用以下特性:

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

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

结论

C++是一种现代的、进化的语言,C语言看起来是静态的,进化得慢得多。随着嵌入式开发人员在其系统中面临日益增加的复杂性,他们需要一种允许他们灵活并最大限度地重用的语言。许多“旧时代”的抱怨不再适用于C++,尤其是C++编译器已经变得多么高效。如果有时间开始转换到C++,这很可能就是它。

原文链接:https://www.toutiao.com/a7038430391572939272/

  • C++
  • C
  • 延伸 · 阅读

    精彩推荐
    • C/C++C语言实现双人五子棋游戏

      C语言实现双人五子棋游戏

      这篇文章主要为大家详细介绍了C语言实现双人五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

      两片空白7312021-11-12
    • C/C++c/c++内存分配大小实例讲解

      c/c++内存分配大小实例讲解

      在本篇文章里小编给大家整理了一篇关于c/c++内存分配大小实例讲解内容,有需要的朋友们可以跟着学习参考下。...

      jihite5172022-02-22
    • C/C++深入C++拷贝构造函数的总结详解

      深入C++拷贝构造函数的总结详解

      本篇文章是对C++中拷贝构造函数进行了总结与介绍。需要的朋友参考下...

      C++教程网5182020-11-30
    • C/C++c/c++实现获取域名的IP地址

      c/c++实现获取域名的IP地址

      本文给大家汇总介绍了使用c/c++实现获取域名的IP地址的几种方法以及这些方法的核心函数gethostbyname的详细用法,非常的实用,有需要的小伙伴可以参考下...

      C++教程网10262021-03-16
    • C/C++C语言main函数的三种形式实例详解

      C语言main函数的三种形式实例详解

      这篇文章主要介绍了 C语言main函数的三种形式实例详解的相关资料,需要的朋友可以参考下...

      ieearth6912021-05-16
    • C/C++OpenCV实现拼接图像的简单方法

      OpenCV实现拼接图像的简单方法

      这篇文章主要为大家详细介绍了OpenCV实现拼接图像的简单方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

      iteye_183805102021-07-29
    • C/C++使用C++制作简单的web服务器(续)

      使用C++制作简单的web服务器(续)

      本文承接上文《使用C++制作简单的web服务器》,把web服务器做的功能稍微强大些,主要增加的功能是从文件中读取网页并返回给客户端,而不是把网页代码...

      C++教程网5492021-02-22
    • C/C++关于C语言中E-R图的详解

      关于C语言中E-R图的详解

      今天小编就为大家分享一篇关于关于C语言中E-R图的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看...

      Struggler095962021-07-12