我有以下代码:
#include<stdio.h>
int main(){
int a = 1, b = 8;
while(a != b)
{
printf("asd");
fflush(stdout);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
很明显,该计划永远不会停止.但为什么"asd"根本没有打印?
编辑:这是完整的程序.没有任何其他线路.我第一次使用Eclipse和MinGW并且它没有打印任何东西.我在linux中尝试使用gcc,它按预期工作,即使没有fflush!因此,这种行为可能是由于某些编译器优化代码并修改无限循环这一事实造成的.
Car*_*rum 11
fflush(stdin)没有意义,实际上根据标准导致未定义的行为 - 你可能意味着fflush(stdout).如果你做了那个改变,你会看到输出.