为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++ C
月关宝盒 2019-07-26 15:45:26
“for(;;)”比“while(TRUE)”快吗?如果没有,为什么人们会使用它?for (;;) {     //Something to be done repeatedly}我已经看到这种东西使用了很多,但我觉得它很奇怪......说这个while(true)或者某些东西不是更清楚吗?我猜这(因为许多程序员采用神秘的代码的原因)这是一个微小的利润更快?为什么,它真的值得吗?如果是这样,为什么不这样定义它:#define while(true) for(;;)另请参见:哪个更快:while(1)或while(2)?
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

  1. 它并不快。

  2. 如果您真的关心,请使用您的平台的汇编程序输出进行编译,并查看。

  3. 没关系。这永远不重要。写下你喜欢的无限循环。


查看完整回答
反对 回复 2019-07-26
?
湖上湖

TA贡献2003条经验 获得超2个赞

我更喜欢for(;;)两个原因。

一个是一些编译器产生警告while(true)(类似“循环条件不变”)。避免警告总是一件好事。

另一个是我认为for(;;)更清晰,更有说服力。我想要一个无限循环。它的字面没有条件,这取决于什么。我只是想让它永远持续下去,直到我做一些事情来突破它。

然而while(true),嗯,什么是真的与任何事情有关?我对循环不感兴趣,直到true变为false,这就是这个形式的字面意思(循环,而true为真)。我只是想循环。

不,绝对没有性能差异。


查看完整回答
反对 回复 2019-07-26
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

因为丹尼斯里奇

  • 我开始使用,for (;;)因为这就是Dennis Ritchie在K&R中所做的事情,当我学习一门新语言时,我总是试图模仿聪明人。

  • 这是惯用的C / C ++。如果您计划在C / C ++空间做很多事情,那么从长远来看,它可能会更好地适应它。

  • #define将无法工作,因为#define'd必须看起来像一个C标识符。

  • 所有现代编译器都将为这两个构造生成相同的代码。


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 957 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信