“for(;;)”比“while(TRUE)”快吗?如果没有,为什么人们会使用它?

“for(;;)”比“while(TRUE)”快吗?如果没有,为什么人们会使用它?

for (;;) {
    //Something to be done repeatedly}

我已经看到这种东西使用了很多,但我觉得它很奇怪......说这个while(true)或者某些东西不是更清楚吗?

我猜这(因为许多程序员采用神秘的代码的原因)这是一个微小的利润更快?

为什么,它真的值得吗?如果是这样,为什么不这样定义它:

#define while(true) for(;;)

另请参见:哪个更快:while(1)或while(2)?


月关宝盒
浏览 958回答 3
3回答

守着星空守着你

它并不快。如果您真的关心,请使用您的平台的汇编程序输出进行编译,并查看。没关系。这永远不重要。写下你喜欢的无限循环。

湖上湖

我更喜欢for(;;)两个原因。一个是一些编译器产生警告while(true)(类似“循环条件不变”)。避免警告总是一件好事。另一个是我认为for(;;)更清晰,更有说服力。我想要一个无限循环。它的字面有没有条件,这取决于什么。我只是想让它永远持续下去,直到我做一些事情来突破它。然而while(true),嗯,什么是真的与任何事情有关?我对循环不感兴趣,直到true变为false,这就是这个形式的字面意思(循环,而true为真)。我只是想循环。不,绝对没有性能差异。

一只萌萌小番薯

因为丹尼斯里奇我开始使用,for (;;)因为这就是Dennis Ritchie在K&R中所做的事情,当我学习一门新语言时,我总是试图模仿聪明人。这是惯用的C / C ++。如果您计划在C / C ++空间做很多事情,那么从长远来看,它可能会更好地适应它。你#define将无法工作,因为#define'd必须看起来像一个C标识符。所有现代编译器都将为这两个构造生成相同的代码。
打开App,查看更多内容
随时随地看视频慕课网APP