我有以下代码:
#include<stdio.h>
int main(){
int a = 1, b = 8;
while(a != b)
{
printf("asd");
fflush(stdout);
}
return 0;
}
显然,程序永远不会停止。但是为什么根本没有打印“asd”呢?
编辑:这是完整的程序。没有任何其他线路。我第一次使用 Eclipse 和 MinGW 时没有打印任何东西。然后我在 linux 中尝试使用 gcc,它按预期工作,即使没有 fflush! 因此,这种行为可能是由某些编译器优化代码并修改无限循环这一事实引起的。
最佳答案
fflush(stdin)
没有意义,实际上根据标准会导致未定义的行为 - 您可能是指 fflush(stdout)
。如果您进行了更改,您将看到输出。
关于c - C 中的无限循环行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17373255/