C++在嵌入式编程中编译C代码与Pure C?

Dex*_*ers 1 c c++ embedded

我已经阅读了C vs C++的内容以及为什么C比C++更受欢迎,但是编写用C++编译器编译的C代码并在嵌入式程序中使用会产生什么影响,标准定义(如空指针等)可能会有所不同.

为了更清楚,如果我只使用c代码编写embedded.cpp并使用c ++编译器进行编译,那么生成的代码将与embedded.c代码一样高效.我的猜测是C编译器经过高度优化并生成优化代码.这就是全部的原因吗?

Jir*_*ika 7

任何比较只有在您查看特定编译器时才有意义.一些领先的编译器对C++和C使用完全相同的后端,并且库选择(影响磁盘占用空间,内存占用,启动时间以及几乎所有其他内容)的确定非常自由且比C vs.更精细. C++,假设你真的很在乎.

所以在这种情况下答案是,不,文件扩展名无关紧要.但是,调用C程序C非常适合您决定将产品限制为C以便在团队中理解.

请注意,嵌入式开发中针对C++的许多争论来自十年或更久以前的时代,当时C++编译器正在努力正确地实现语言,有时以牺牲可预测的性能或运行时大小为代价.今天所有与我紧密相关的嵌入式发展的实用语言战争往往是在C++和C#之间,而C甚至很少被人记住.

  • 您认为嵌入式系统是什么?一台笔记本电脑?一部智能手机?看来你只看到了整个嵌入式市场的一些奇怪的小利基.如果我们看看真正的嵌入式系统不仅仅是PC的另一种风格:汽车/工业/医疗技术/航空航天等,大约90%的嵌入式市场是C.其他10%主要是汇编程序,C++和ADA,汇编程序可能仍然是这三者中最大的.C#和Java在嵌入式系统中几乎不存在. (5认同)
  • 我在产品中看到了一些非常糟糕的C代码,C是一种简单的语言.平均而言,C++程序员不可能比C程序员更聪明或更训练,C++比C更复杂.我敢打赌,有一些C++代码就像可怕的C代码,平方.只是猜测:-) (2认同)