我只是为了知识而问这个问题(因为我认为这与像我这样的初学者无关)。
我读到 C 程序员更喜欢
for(; ;) {....}
超过
while(1) {....}
出于效率原因的无限循环。一种形式的循环确实比另一种形式更有效,还是仅仅是风格问题?
我只是为了知识而问这个问题(因为我认为这与像我这样的初学者无关)。
我读到 C 程序员更喜欢
for(; ;) {....}
超过
while(1) {....}
出于效率原因的无限循环。一种形式的循环确实比另一种形式更有效,还是仅仅是风格问题?
两种构造在行为上是等效的。
关于偏好:
C 编程语言,Kernighan & Ritchie,
使用表格
for (;;)
对于一个无限循环。
编程实践,Kernighan & Pike,
也喜欢
for (;;)
“对于无限循环,我们更喜欢 for(;;) 但 while(1) 也很流行。不要使用这些形式以外的任何东西。”
PC-Lint
也喜欢
for (;;)
:
716 while(1) ... -- 找到了 while(1) ... 形式的构造。虽然这表示期望布尔值的上下文中的常量,但它可能反映了一种编程策略,其中无限循环以该构造为前缀。因此,它被赋予了一个单独的编号,并被置于信息类别中。更传统的无限循环前缀形式是 for(;;)
for (;;)
历史上更受欢迎的理由之一(也许不是最重要的,我不知道)是一些旧编译器会为构造while (1)
生成测试。while (1)
另一个原因是:for(;;)
是最短的形式(以字符数计),也不包含任何幻数(正如@KerrekSB在 OP 问题评论中for(;;)
指出的那样)。