我正在使用C作为我的Operative Systems的主题,并且看到了for( ;; )
的使用,但我不知道它的含义。我猜这是一个无限循环。
int sfd, tfd;
char c;
for (;;) {
if ( read (sdf , &c , 1) != 1 ) return;
write( tfd, &c, 1 );
}
答案 0 :(得分:2)
for
语句(请参阅c99 6.8.5.3)具有3个(可选)部分:初始化,条件和增量。
缺少“条件”部分将解释为 true (请参见c99 6.8.5.3p2)
...省略的expression-2替换为非零常量。
答案 1 :(得分:1)
这确实是一个无限循环,需要break
或return
(或跳转)才能退出。
相对于等效的while(1)
更为可取,因为它通常会发出编译器警告,而for(;;)
几乎肯定不会。