for(;;)声明是一个空话.虽然是一个空的条件,但编译器应将其视为null等效的语句0,即FALSE.因此,据我所知,它不应该被评估.
但令我惊讶的是,编译器发送了真实的信号.
请解释一下.
P.P*_*.P. 10
C标准规定如果条件存在,则应将其视为具有非零值.
6.8.5.3,p2(第-1条;表达式-2;表达式-3)的for语句
可以省略子句-1和表达式3.省略的表达式-2由非零常量替换.
(强调我的)
这与while循环不一致,因为条件表达式不能在while循环中保留为空.但这就是C在许多方面的表现:)