我只是为了知识而问这个问题(因为我认为它与像我这样的初学者没有任何关系)。
我读过C程序员更喜欢
for(; ;) {....}
结束
while(1) {....}
为了效率的原因进行无限循环。一种形式的循环比另一种循环更有效,或者仅仅是风格问题,这是真的吗?
答案 0 :(得分:6)
这两种结构在行为上是等效的。
关于偏好:
C编程语言,Kernighan&里奇,
使用表格
for (;;)
无限循环。
编程实践,Kernighan&派克,
也更喜欢
for (;;)
“对于无限循环,我们更喜欢(;;)但是(1)也很受欢迎。不要使用除这些形式之外的任何东西。”
PC-皮棉
也更喜欢
for (;;)
:
716 while(1)... - 找到形式的构造,而(1)......被找到。虽然这表示期望布尔值的上下文中的常量,但它可以反映编程 无限循环以此结构为前缀的策略。因此,它被赋予一个单独的数字,并被放入信息类别。更常规形式的无限循环前缀是(;;)
历史上for (;;)
优先于while (1)
的理由之一(可能不是最重要的,我不知道)是一些旧的编译器会为{{1}生成测试构造。
另一个原因是:while (1)
是最短的形式(字符数),for(;;)
也不包含任何幻数(在OP问题评论中由@KerrekSB指出)