为goto写循环,会提高速度吗?

时间:2011-12-25 13:27:52

标签: c optimization

根据优化,写入循环是否会提高速度?

我尝试将循环写为goto,但我想知道有任何run_time加速吗?

前:

  for ( .. ) { 


  }

  as

  A:


  if ( ... ) 
       goto A

4 个答案:

答案 0 :(得分:7)

没有。

在机器级别,只有goto语句(好吧,跳转,真的),编译器在优化循环时通常比任何人做得好得多(例如通过循环展开等技术),因为它对底层架构有更好的了解。

这并不是说goto没用 - 在某些情况下它非常有用。只是不是为了实现循环。但是,如果要在循环语句中输入,则可以使用它。

答案 1 :(得分:4)

几乎可以肯定没有。编程优化器现在非常好用。

答案 2 :(得分:4)

如果你正在使用gcc或其他现代编译器,那么<​​strong>更可能会更糟糕,因为大多数现代编译器使用loop unrolling [以及其他优化]优化你的循环。

答案 3 :(得分:1)

尝试手动优化代码是一个坏主意:现代编译器能够优化您的代码,并且比您做得更好。但是不要忘记在编译时打开优化...

另外,使用goto语句而不是循环将使代码不可读:循环的意图丢失,因此代码更难掌握。这需要稍后进行维护噩梦。

相关问题