在阅读C代码时,我注意到一条奇怪的语句:
for (;;) {
// some code
}这是我第一次看到这种语法,但我假设它等同于:
while(true) {
// some code
}结果显然是相同的(在逻辑上)。
那为什么要写成这样呢?在编译时有区别吗?
发布于 2015-11-17 19:23:59
它们的工作原理是一样的!如果我们遵循for循环的语义,那么for循环的工作方式是这样的:
for(_INITIALIZATION;_CONDITIONN_CHECKING;_OPEARTION){
//Some code Here
}现在,for循环中的每个术语都是相互独立的。因此for(;;)表示没有任何条件可以中断循环。定义无限for循环的其他方法包括
a)for(;;)
b)for(_INITIALIZATION;;)
c)for(;;operations)
d)for(_INITIALIZATION;;_OPERATIONS)
E)for(_INITIALIZATION;1;_OPERATIONS)发布于 2015-11-17 19:26:46
是的,它是一样的,只是在语义上比while(true)更有意义
https://stackoverflow.com/questions/33755521
复制相似问题