起初,我认为由于C++是C的超集,因此C++不应该比C慢,但SO上很多人并不这样认为(链接)。
C++比C慢是真的吗?如果不是,为什么还要使用C呢?
起初,我认为由于C++是C的超集,因此C++不应该比C慢,但SO上很多人并不这样认为(链接)。
C++比C慢是真的吗?如果不是,为什么还要使用C呢?
C++不是C语言的超集。
两种语言都可以编写出同样高效或同样糟糕的程序。
争议可能来自于任何一门高级语言都拥有更多的高级特性可供使用,你很可能会使用它们。如果在低级语言中重新实现这些功能,则可能会表现得更差。但是,在低级语言中没有这些功能可能意味着您不太可能使用它们。
很可能您在任何一种语言中创建的程序都不会有什么区别。
编程语言本身并没有速度可比性。我想你想问的是使用C编译器编译的代码是否比使用C++编译器编译的代码更快。答案是...取决于你比较哪些编译器以及被编译的代码的性质。
我认为你所指的“慢/快”在这里并不存在。
C/C++都是具有自己编译器的编程语言。每种语言都会以某种方式将您的程序转换为较低级别的语言。您可能会发现两者之间存在大量差异,但它们实际上都归结于程序员的易用性。您不能仅因为一种语言比另一种语言晚出现就说它更快。这些不是发布的修复程序。这些是由新人以新风格创建的新编程语言。
如果你的理论继续下去...那么Java应该从世界上消除C++,C#应该从世界上消除Java...等等,不要忘了VB应该消除其他所有语言? :p 只是想让你知道你的问题的后果。
C++可以编写成C,因此不应该比C慢(假设编译器和库的优化水平相同)。
然而,如果以面向对象的方式编码,则速度应该会明显变慢。良好的面向对象代码将需要大量堆分配(否则您可以将大部分内容保留在堆栈上)和小空间分配 - 纯C可以在堆栈分配之外几乎不需要任何东西。此外,面向对象往往需要每个方法调用的额外一两个间接级别。