C中的无限循环行为

Sor*_*rin 0 c infinite-loop

我有以下代码:

#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).如果你做了那个改变,你会看到输出.

  • 我会喜欢六票来修正拼写错误:P (6认同)
  • 有时(通常)容易获得最多选票.如果它让你感觉更好,我今天已经达到了代表帽,所以我没有从这个中获得任何互联网拥抱. (2认同)