相关疑难解决方法(0)

而(1)Vs. for(;;)有速度差吗?

长版......

一位同事在看到我while (1)在Perl脚本中使用for (;;)更快后断言了.我认为他们应该是一样的,希望翻译能够优化任何差异.我设置了一个脚本,它将运行1,000,000,000次循环迭代和相同数量的while循环并记录它们之间的时间.我找不到明显的区别.我的同事说,一位教授告诉他,这while (1)是在进行比较1 == 1而事实for (;;)并非如此.我们用100倍的C++迭代次数重复相同的测试,差异可以忽略不计.然而,它是一个图形示例,说明编译代码与脚本语言相比可以更快.

精简版...

没有任何理由,更喜欢一个while (1)比一个for (;;),如果你需要一个无限循环打出来的?

注意:如果问题不清楚.这在几个朋友之间纯粹是一次有趣的学术讨论.我知道这不是一个超级重要的概念,所有程序员都应该为之痛苦.感谢所有伟大的答案我(我相信其他人)从这次讨论中学到了一些东西.

更新:前面提到的同事在下面做出回应.

这里引用以防它被埋没.

它来自AMD汇编程序员.他说C程序员(人们)没有意识到他们的代码效率低下.他今天说,gcc编译器非常好,让像他这样的人破产.他举例称,并告诉我关于while 1VS for(;;).我现在出于习惯而使用它,但是gcc和特别是解释器在这些日子里都会做同样的操作(处理器跳转),因为它们已经过优化.

c++ optimization perl performance

152
推荐指数
13
解决办法
5万
查看次数

在实现无限循环时,使用while(1)vs for(;;)vs goto(在C中)是否存在差异?

在实现无限循环时,使用while(1)vs for(;;)vs 会有区别goto吗?

谢谢,陈兹

c loops for-loop goto while-loop

28
推荐指数
3
解决办法
9037
查看次数

C#中for(;;)和while(true)之间的区别?

从语法上来说,我看到它们无限循环,直到达到break语句,但它们是否编译为同一个东西?因为它没有条件可以检查吗?除了代码可读性之外,还有差别吗?

c#

17
推荐指数
2
解决办法
3265
查看次数

有没有理由用C++中的for(; condition;)替换while(condition)?

好像

while( condition ) {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

完全等同于

for( ; condition; ) {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

有没有理由使用后者而不是前者?

c++ loops for-loop while-loop

5
推荐指数
5
解决办法
5413
查看次数

标签 统计

c++ ×2

for-loop ×2

loops ×2

while-loop ×2

c ×1

c# ×1

goto ×1

optimization ×1

performance ×1

perl ×1