我是具有C语言和C ++经验的电子工程师(我用C语言编写了微控制器,用C ++编写了我用Borland C ++ Builder编写的Windows)
我公司开发电机控制产品,我们正在使用STM32和IAR编译器。
我认识到语言之间的技术差异,我对开发海岸以及代码的维护成本感兴趣:
答案 0 :(得分:17)
这非常主观。我个人认为使用C ++进行开发在开发时间和维护方面的成本较低,特别是对于大型复杂项目。这是因为我见过的大多数大型复杂C项目总是以这种或那种方式最终实现C ++特性(例如多态)。另外,我认为某些C ++特性,如命名空间,数据封装和对象的自动初始化/破坏,增加了大型项目的可维护性;虽然这些事情中的一部分可以或多或少地模仿C中的不同程度的有效性。
但您的里程可能会有很大差异,具体取决于其他因素。例如,如果你的编程团队在使用C语言方面比C ++有更多的经验,那么在C ++中可能不值得这样做。
答案 1 :(得分:9)
是编写C ++的开发时间 代码比C更长?
这完全取决于您的程序员。他们擅长写C或C ++吗?
C ++代码的维护成本是多少 比C便宜? (我一直都知道 将是代码中的变化)
再次,将取决于您的程序员。您可以用任何语言编写可维护或不可维护的代码。
用C ++编写代码是否容易? 反对C? (描述的文件 代码如何工作)
完全取决于您的团队和您正在使用的工具,但我想他们可能会大致相同。
总而言之,这完全取决于你拥有的人以及他们最擅长的人。如果你试图将一堆C程序员放在一个C ++项目上,你可能会得到一些非常糟糕的C ++。同样,如果你试图将一堆C ++人员放在纯C项目上。
答案 2 :(得分:5)
取决于相关团队的经验。使用C ++,您可以访问更丰富的库函数(但在嵌入它们时要小心它们的足迹)。
精心设计的C ++代码比C代码更容易维护,因为它允许一些语法糖(构造函数,析构函数,RAII)。
文档费用差不多。
答案 3 :(得分:4)
答案 4 :(得分:3)
选择已知的邪恶
如果您/您的商店在使用C方面比使用C ++有更多的经验,请坚持使用C.我不会轻易地在关键任务项目中引入新技术。大多数时候,开发人员的资格对于项目成功而言比工具集更重要。
选择更好的工具集
在许多微控制器上,编译器技术落后于消费者桌面平台五到十年。一个好的编译器会让你不再担心微优化,有了一个不错的分析器(已经准备好并配备了武器),你可以跳过大量的猜测和自定义测量。
...这就是你如何使用它
在其他条件相同的情况下,这不是语言的选择,而是你如何使用它。 C ++的性能问题非常有限:
所有这些都是关于开发者的,而不是语言本身。
答案 5 :(得分:2)
你提到了readtime这个词,我理解这意味着性能对你很重要。在这一点上,我可以说,与C和C ++相比,C ++不会产生性能损失,并且可以在操作系统内核(Symbian)中使用。
然而,C ++确实提供了可能降低性能的习惯用法。 Getter和Setter可能会导致生成额外的代码。与C代码相比,Vtable查找需要一些额外的指令。
在可维护性方面,还需要记住,系统程序员可能会更熟悉C,然后他们会使用C ++。
答案 6 :(得分:1)
语言选择与您提出的三个问题关系不大。选择您更有经验的语言,这样可以让您更具表现力。
答案 7 :(得分:1)
真的,两者都没有特定的优势。它更多地是关于你如何使用它而不是你正在使用它。
具体答案:
答案 8 :(得分:1)
由于更强大的数据类型和对象约束,你绝对应该使用C ++:)
答案 9 :(得分:0)
我认为你提到的所有三点都取决于工具支持。 由于C ++很难解析并且更难以静态分析,因此某些工具可能只适用于C.
答案 10 :(得分:-1)
- 编写C ++代码的开发时间是否长于C?
醇>
有时。有些实时应用程序根本无法在C ++中实现。
- C ++代码的维护成本是否比C便宜? (我知道代码总是会有变化)
醇>
没有。它的应用程序很敏感。
- 用C语言编写针对C的代码是否容易? (描述代码如何工作的文档)
醇>
一般来说,它们相当于。