【问题标题】:Performance difference between for, while and do while loop? [closed]for、while 和 do while 循环之间的性能差异? [关闭]
【发布时间】:2014-01-11 18:58:07
【问题描述】:

c 中的 for、while 或 do...While 循环之间有什么性能差异吗?

我的一位教授告诉我,for 循环在责骂我从不使用它们时更快(为了可读性,我认为 for 循环的可读性低于 (do...)while 循环)。

我手头没有编译器,也没有时间测试执行时间,如果有差异,我想知道原因。

(我知道很多 SO 问题看起来很相似,但要么是在询问 while 与 do while,要么没有任何答案)

【问题讨论】:

  • 没有性能差异,但功能差异有时很重要。 for 和 while 循环如果立即满足其退出条件,则有机会永远不会运行。 do...while 将至少运行一次。
  • "c 中的 for、while 或 do...While 循环之间有什么性能差异吗?" - 没有。
  • 这个问题似乎是题外话,因为它是假设性的。
  • 在这里查看selected answer
  • @hacks(如果有 any 证据,那么……:P)

标签: c performance loops


【解决方案1】:

三个迭代语句的整体语义在编译成二进制代码后是相同的。

它们只是提供了对同一事物的不同品味。性能取决于:

  • 循环体的复杂性
  • 计算结束条件/下一个迭代步骤的复杂性

由于它们都提供了它们,因此它们中的任何一个本身都没有性能差异。除非你考虑一些无关紧要的小事,否则无论如何都不应该在意。

可能有一些优化技巧可以根据循环的类型来完成,但你不应该依赖它们,即使它们可能依赖于编译器,所以从你的角度来看毫无意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-04
    • 2010-11-13
    • 2011-04-07
    • 2010-10-25
    • 2018-11-21
    • 2023-04-09
    • 2022-01-25
    相关资源
    最近更新 更多