什么(;;)和while(); 在C中的意思
我正在看一些示例代码,我看到有人这样做了
for (;;) { // ... }
这相当于while(1) { }
?
而什么while(condition);
做? 我没有理由把';'
放在后面 而不是{}
是,
for(;;){}
是一个无限循环
而什么(条件); 做? 我没有理由把’;’放在后面 代替 {}
那么,你的问题是,如果你放了或者你没有在那之后放一个分号,会发生什么? 计算机将分号标识为空语句。
试试这个:
#include int main(void){ int a = 5, b = 10; if (a < b){ printf("True"); } while (a < b); /* infinite loop */ printf("This print will never execute\n"); return 0; }
而只是通过一个语句循环,直到条件为假。 它不必是复合语句(这个东西:{}),它可以是任何语句。 ; 是一个什么都不做的声明。
while(getchar() != '\n');
例如,会循环直到你按Enter键。 虽然这是不好的做法,因为它会占用线程; 在循环中添加对sleep方法的调用更好。
for(;;)
和while(1)
都是无限循环,并编译为相同的操作码:
L2: jmp L2
这意味着没有速度差异,因为拆卸完全相同。