C中的“ for(;;)”是什么意思?

时间:2019-01-24 17:07:47

标签: c system

我正在使用C作为我的Operative Systems的主题,并且看到了for( ;; )的使用,但我不知道它的含义。我猜这是一个无限循环。

int sfd, tfd;
char c;
for (;;) {
    if ( read (sdf , &c , 1) != 1 ) return;
    write( tfd, &c, 1 );
}

2 个答案:

答案 0 :(得分:2)

for语句(请参阅c99 6.8.5.3)具有3个(可选)部分:初始化条件增量

缺少“条件”部分将解释为 true (请参见c99 6.8.5.3p2

  

...省略的expression-2替换为非零常量。

答案 1 :(得分:1)

这确实是一个无限循环,需要breakreturn(或跳转)才能退出。

相对于等效的while(1)更为可取,因为它通常会发出编译器警告,而for(;;)几乎肯定不会。