c - for 循环中的空语句 VS 无限 while

标签 c loops for-loop compilation

我在阅读 C 代码时注意到一个奇怪的语句:

for (;;) {
    // some code
}

这是我第一次看到这种语法,但我认为这相当于:

while(true) {
    // some code
}

结果显然是相同的(就逻辑而言)。

那为什么要这样写呢? 编译时有区别吗?

最佳答案

两者的工作原理是一样的! 如果我们遵循 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)

关于c - for 循环中的空语句 VS 无限 while,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33755521/

相关文章:

python - 如何将列表转换为 Flask 模板的类对象

java - 从数组中删除重复的字符串?

c - matlab for (递减) C语言

javascript - 从嵌套数组中获取一行,将值插入输入,然后 setTimeout 更改为下一个数组?

c - C程序中函数的定义

python - gc 上的段错误,使用 ctypes

c - 哈希表 - 使用 qsort 排序结构

php - MySQL; PHP 循环错误

用于创建和合并数据库数据透视表的 Python Pandas For 循环

c - 在为微 Controller 编译 C 程序时,编译器放置的那些额外的汇编代码是什么?