当前位置:  开发笔记 > 编程语言 > 正文

对于实时应用程序,哪个更好的C或C++?

如何解决《对于实时应用程序,哪个更好的C或C++?》经验,为你挑选了3个好方法。

我是具有C语言和C++经验的电子工程师(我用C编写微控制器,用C++编写,用Borland C++ Builder编写的Windows)

我公司开发电机控制产品,我们正在使用STM32和IAR编译器.

我认识到语言之间的技术差异,我对开发海岸和代码的维护成本感兴趣:

    编写C++代码的开发时间是否比C长?

    C++代码的维护成本是否比C便宜?(我知道代码总会有变化)

    用C语言编写针对C的代码是否容易?(描述代码如何工作的文档)

Charles Salv.. 17

这是非常主观的.我个人认为使用C++进行开发在开发时间和维护方面的成本较低,特别是对于大型复杂项目.这是因为我见过的大多数大型复杂C项目总是以这种或那种方式最终实现C++特性(例如多态).另外,我认为某些C++特性,如命名空间,数据封装和对象的自动初始化/破坏,增加了大型项目的可维护性; 虽然这些东西中的一些可以或多或少地被模仿到C中的不同程度的有效性.

但是,根据大量的其他因素,您的里程可能会有很大差异.例如,如果你的编程团队在使用C语言方面比C++有更多的经验,那么在C++中可能不值得这样做.



1> Charles Salv..:

这是非常主观的.我个人认为使用C++进行开发在开发时间和维护方面的成本较低,特别是对于大型复杂项目.这是因为我见过的大多数大型复杂C项目总是以这种或那种方式最终实现C++特性(例如多态).另外,我认为某些C++特性,如命名空间,数据封装和对象的自动初始化/破坏,增加了大型项目的可维护性; 虽然这些东西中的一些可以或多或少地被模仿到C中的不同程度的有效性.

但是,根据大量的其他因素,您的里程可能会有很大差异.例如,如果你的编程团队在使用C语言方面比C++有更多的经验,那么在C++中可能不值得这样做.


@earlz,我对这个论点持高度怀疑态度.像C一样,C++是一种强类型语言.任何阅读代码的人都可以轻松地确定`i`是一个`int`还是一个带有重载增量运算符的用户定义类.此外,相同的参数可以应用于C.是否`i ++`递增一个整数,或者它是否通过`sizeof(*i)`移动指针?你根本无法知道,除非你(喘息)知道这种类型,通过简单地浏览一下源代码就可以轻松确定.
就此而言,C中的`i ++`可能会调用浮点仿真库中的函数.与C++中用户定义的运算符重载的情况没有太大区别.好的,所以浮动仿真例程实际执行的工作量有一个上限,而在C++中,运算符重载的工作量没有上限.但在这两种情况下,如果编写良好的代码将执行尽可能多的工作,以后增加i,而不是更多.如果你不想做那么多工作,那么你就不能增加我.
同意.现在,C的好处主要在于生成小的可执行文件而且开销很小.
我会说C的好处是知道`i ++;`将执行一个'inc`指令(x86)而不会做一个涉及谁知道什么的大函数调用.

2> Eric Petroel..:

编写C++代码的开发时间是否比C长?

这完全取决于您的程序员.他们擅长写C或C++吗?

C++代码的维护成本是否比C便宜?(我知道代码总会有变化)

再次,将取决于您的程序员.您可以使用任何语言编写可维护或不可维护的代码.

用C语言编写针对C的代码是否容易?(描述代码如何工作的文档)

完全取决于您的团队和您正在使用的工具,但我想他们可能会大致相同.

总而言之,这一切都取决于你拥有的人和他们最擅长的人.如果你试图将一堆C程序员放在一个C++项目上,你可能会得到一些非常糟糕的C++.同样,如果你试图将一堆C++人员放在纯C项目上.



3> florin..:

    取决于所涉团队的经验.使用C++,您可以访问更丰富的库函数(但在嵌入它们时要小心它们的足迹).

    精心设计的C++代码比C代码更容易维护,因为它允许一些语法糖(构造函数,析构函数,RAII).

    文件的成本大致相同.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有