c - C 中的无限循环行为

标签 c infinite-loop

我有以下代码:

#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/

相关文章:

c - 使用打开/读取时如何检测文件结尾?

c - 如何制作一个合适的事件循环(或者随便叫什么)?

c++ - C++中的cin缓冲区问题

javascript - 自动滚动 jquery 无限滚动循环

c++ - DirectShow 使用 C++ 无限循环视频

c - c 中的 sleep 函数 linux 中的疯狂错误

java - 在 Java 中将 C 的 uint32 转换为 int 的正确方法

关闭客户端中的套接字会使 nodejs 服务器崩溃

c - 单独链接哈希表上的段错误

Scala while(true) 类型不匹配? scala 中的无限循环?