while(1)之前的代码不运行

标签 c ansi-c

我有如下代码:

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("hello");

    while(1){
        // whatever here
    }
}

问题是:为什么第一条指令被跳过?它只运行循环,永远不会打印 hello 。我用 gcc 和 g++ 编译了它,结果相同。

最佳答案

确实运行,只是输出缓冲区在while之前没有刷新

使用printf("hello\n");来代替。换行符将刷新缓冲区,以便立即将输出写入控制台。

关于while(1)之前的代码不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35606614/

相关文章:

无法将参数从 C 传递到汇编代码

c - 使用 ansi C 中的字典将完整的字符串解析为单词

c - 成功交换上下文后返回函数执行时出现段错误

c - 在 C 中从命令行编写插入排序和交换函数

c - scanf使while循环自动运行2次

c - 嵌套的 typedef 结构

c++ - 我应该如何在 mac 上用 c++ 编译源代码以确保它在遵守 ANSI/ISO 的同时在 Windows Visual Studio 编译器中正确编译

c - __atomic_test_and_set 与 __atomic_compare_exchange_n

c - 在 C (C89) 中使用 printf 打印 BUFSIZ 宏常量时使用什么说明符

c - ANSI C 与其他 C 标准