非停止while循环之前的语句未执行

时间:2017-07-22 03:39:18

标签: c while-loop printf

为什么以下功能不打印"开玩笑!"。

void justCheck() {
    printf("Just kidding!");
    while (1) {
    }
}

虽然这是印刷" Justing Kidding!"然后不停止" Just Kidding内循环!"。

void justCheck() {
    printf("Just kidding!\n");
    while (1) {
        printf("Justing Kidding inside loop!\n");
    }
}

任何人都可以解释一下逻辑吗?

1 个答案:

答案 0 :(得分:3)

你的第一个例子

 printf("Just kidding!");

输出被缓冲,因此不显示

在第二个例子中

   printf("Just kidding!\n");

最后的\n将刷新缓冲区,因此将显示该字符串。

在while循环之前的第一个示例中插入fflush(stdout);