C真的比C ++快吗?

时间:2010-09-13 17:16:08

标签: c++ c

起初我曾经相信,因为C ++是C的超集,所以C ++不应该比C慢,但很多人都不这么认为https://stackoverflow.com/questions/2245196/c-urban-myths/2245221#2245221

C ++是否比C慢?如果没有,为什么还要使用C?

6 个答案:

答案 0 :(得分:11)

C ++不是C的超集。

程序可以用两种语言制作,这些语言同样有效,或同样糟糕。

这个论点可能来自于任何更高级别的语言,您将拥有更多更高级别的功能,您可能会使用它们。如果您使用较低级别的语言重新实现这些功能,那么您可能会更糟糕。但是没有低级语言可能意味着你不太可能使用它们。

可能你用这两种语言制作的任何节目,你都不会注意到差异。

答案 1 :(得分:8)

您是否意识到“C ++比C慢”意味着是一个神话,所以它实际上说“C ++ 比C慢”?对答案的评论并不是很严重。

  

C ++是否比C慢?如果没有,为什么还要使用C?

“法拉利比福特慢吗?如果没有,为什么还要使用福特?”。

答案 2 :(得分:2)

语言没有可比较的速度。我想您想问的是,使用C编译器编译的代码是否比使用C ++编译器编译的代码快。答案是......取决于你比较的编译器和编译代码的性质。

答案 3 :(得分:0)

程序的速度更多地取决于程序员而不是语言。对于高性能应用程序,C ++是金融服务中的标准语言(不是容忍慢速代码的扇区)。如果C的速度要快得多,那么就可以使用它。

当然,在开发速度和执行速度之间也需要权衡。如果perf是最重要的,那么我们都会在100%的时间内编写汇编代码。

答案 4 :(得分:0)

我不认为你指的“慢/快”真的存在于此。

C / C ++都是带有自己编译器的编程语言。每个人都会以某种方式将您的程序转换为较低级别的语言。你最终可能会发现两者之间的差异很大,但它们最终都归结为程序员的易用性。俞不能说一个人更快,因为它来得晚了。这些不是已发布的修复程序。这些是新编程语言,由新人以新风格创建。

如果你的理论继续下去......那么java应该从世界中删除c ++& c#应该从世界中删除java ....等一下,nooooo vb应该删除其他所有内容??? :p只是为了让您了解查询的后果。

答案 5 :(得分:-2)

C ++可以编码为C,因此不应该更慢(假设编译器和库中的优化级别相同)。

但是,如果编码OO,它应该明显更慢。好的OO代码将需要大量的堆分配(否则你可以将大多数东西保留在堆栈上)和小的空间分配 - 纯c可以在很少的堆栈分配之外逃脱。此外,对于每个方法调用,OO往往需要一个或多个间接的额外级别。