C++ C+是否有标准限制+;特征?

C++ C+是否有标准限制+;特征?,c++,c,C++,C,我即将开始一个新的实时项目。现在又有关于C与VC++的争论了。是的,我读过关于莱纳斯和其他所有的线索 首先,我倾向于使用C,但是我读了一个C++的答案,然后我在网上读到了“”。 根据这篇文章,EC++已经死了。但是我认为C++的一个“特征指南”对于管理C++的复杂度是有用的。 所以现在我问自己(和你): 使用嵌入式C++ + 在您的公司/项目中使用C++s功能还有其他指南吗?(除了格式指南) 嵌入式C++基本上删除了异常,主要是因为它们给库添加了很多,而在嵌入式系统中,空间限制非常大。随着

我即将开始一个新的实时项目。现在又有关于C与VC++的争论了。是的,我读过关于莱纳斯和其他所有的线索

首先,我倾向于使用C,但是我读了一个C++的答案,然后我在网上读到了“”。 根据这篇文章,EC++已经死了。但是我认为C++的一个“特征指南”对于管理C++的复杂度是有用的。 所以现在我问自己(和你):

  • 使用嵌入式C++ +
  • 在您的公司/项目中使用C++s功能还有其他指南吗?(除了格式指南)

嵌入式C++基本上删除了异常,主要是因为它们给库添加了很多,而在嵌入式系统中,空间限制非常大。随着RAM变得更小、更便宜(40GB iPod?),即使这样也不那么令人担忧


我还没有听到任何比C更喜欢C++的正当理由。

< P>我想你正是要寻找的。

< P>我们的软件是实时运行的,在用示波器花了好几个星期之后,我不得不承认我们的硬件(奔腾M等)。现代C++和它的映射和DEGES的Debug TalpLoad所做的所有堆分配,以及SydDypRTs所做的所有锁定,都通过了我们可以提出的每个延迟/抖动/决定论测试。 操作系统设置(如禁用C2状态或调整驱动程序的内核线程优先级)比切换到内存池分配器或任何其他经典RT编程方法的影响要大几个数量级。当然,我们可以使用严格的C语言从相同的硬件中提取更多的微秒,但是开发和维护该软件的成本将使稍微更新一点的控制器的成本相形见绌


我认为主要的指导原则是要有一个好的数字示波器。

这里是一个现实生活中的场景。可能无法回答问题,但仍在继续

一种流行的桌面软件将被移植到手机上。代码是C++的。团队发现了使用虚拟函数的问题。问题是vptr指针占用了大量内存,这导致了问题。团队回去删除了所有虚拟函数,然后使用函数指针


可能会出现这样的小故障,但在这种情况下,您可以返回并用纯C编写该部分。

我为嵌入式平台(ARM)开发专业软件。我们使用C++。 我们确实有一些共同和合理的指导方针,但由于嵌入式系统的原因,没有具体的指导方针。我们对C++的特性没有限制(没有例外禁止等)。 “功能指南”可能会对您有所帮助,但不会消除学习该语言的必要性。这需要一些时间。如果你没有时间,选择一种可以更快学习的语言

<> C与C+++EC++:
在另一家公司,我们为需要电池供电且内存非常小的嵌入式主板开发了软件。在这种情况下,C就足够了,但仍然不能真正提供优势。如果不是这样,选择C通过C++就像选择一辆踏板车在德国公路上行驶。这是荒谬的

我只是读了一些关于EC++的文章,但我不知道它能提供什么优势。我就是不能。如果没有EC++,现在仍然有一种方法迫使您使用异常

我还没有听到任何合法的消息 C优于C++的原因 我赞成。

我时不时地考虑过这件事。避免C++可能只是一个策略,人们对学习C++有兴趣,然后争论说有技术原因。

< P>从我在嵌入式系统领域的30多年的经验来看,我更喜欢C++ C++。p> 我在小型平台上编程,也在内存空间巨大的平台上编程。用C实现一些C++特性仍然是一个痛苦。这些特性包括但不限于:异常、智能指针、继承和模板


如果是我的决定,我会用C++编程嵌入式系统。大多数时候,这个选择已经被设置:C::(

Linus Torvalds在某个地方有一个流行的介绍。”加布里埃尔:我看到了他的咆哮(基本上是“C比C++好,因为坏程序员使用C++”),我坚持我的说法。C++有一些动作(析构函数,主要是)。这在代码中是不明显的,并且可能在关键代码路径中占用时间,同时很难发现。除此之外,许多C++库都是假设有足够的可用内存,但这不是语言的限制。虚拟对象的不同实现(较慢,但较小)在C++中,优化C++的方法是很困难的。在C平台上使用C++的唯一合法理由是在平台上使用编译器支持。如果你的平台支持C++,否则使用C。可维护性的增益是巨大的,而性能的任何下降都是最小的。(对于可比的功能),使用的额外内存很小。@加布里埃尔:C是这样的,不是吗?或者甚至是MISRA-C++?…谷歌……哦,是的,我看一下。@ SoeTBI在我链接到JSF C++标准的页面上有一个直接链接到C++版本。合并了很多MISRA。你有可能使用洛基::SMOLBJJeCalpActoRead?如果是这样,你对性能有什么影响?@ Gabriel Schreiber:没有尝试过。尝试过Boost Po水池、FSBalLoopter和一个自制的概念证明。我想我们做的分配不够大,也不一样。C++语言也没有。如果需要不同容器,请使用C++库。