首页 >后端开发 >C++ >C/C 中哪种无限循环语法最好:for(;;)、while(1) 或 while(true)?

C/C 中哪种无限循环语法最好:for(;;)、while(1) 或 while(true)?

Linda Hamilton
Linda Hamilton原创
2024-11-15 00:39:02291浏览

Which Endless Loop Syntax in C/C   is Best: for(;;), while(1), or while(true)?

C/C 中的无限循环

问题:

存在多种方法来创建C/C 中的无限循环,包括 for(;;)、while(1) 和 do {} while(1)。是否存在首选形式,现代编译器是否会优化其中一种形式?

答案:

虽然个人喜好推动了有关此主题的许多讨论,但客观分析揭示了以下:

for(;;)

  • 规范形式,在 Kernighan 和 Ritchie 的权威《C 编程语言》中引用。
  • 由于 C 标准对 for 循环语法中省略元素的独特处理而显得晦涩。

while(1)

  • 比for(;;),但依赖于 C 将非零表达式解释为 true。
  • 可能会触发编译器警告(“条件始终为 true”)。

while(true)

  • 旨在提高 while(1) 的可读性。
  • 仍然触发相同的编译器警告。
  • 需要使用stdbool.h 标头和 bool 类型,可能并非所有平台都支持。

现代编译器优化

现代编译器将所有这些循环形式识别为无限循环循环并执行等效的优化。它们可能会根据编译器设置发出警告,但生成的优化代码是相同的。

结论

最终,无限循环语法的选择是个人问题偏爱。然而,鉴于 for(;;) 得到了广泛认可,它避免了编译器警告,并且对于熟悉 C/C 的人来说额外的可读性工作是多余的,它仍然是一个合理的选择。

以上是C/C 中哪种无限循环语法最好:for(;;)、while(1) 或 while(true)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn