微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么C会在一段时间的循环中被卡住?

当我编译并运行这个代码(它是一个更大的程序的一部分)时,Linux将在while循环中途中断,然后停止工作.

下面的代码打印时间:0,然后挂起,在我暂停此过程之前不执行任何操作.为什么会打印时间:0但不是以下行的理智检查?

while (i < 5)
{
    printf("time: %d\n",elapsedtime);
    printf("sanity check");
    foo();
    i++;
}

解决方法

输出通常是缓冲的,只能在刷新或换行之后写入.在
printf("sanity check");

没有换行符,所以如果你在这个循环后运行,你不会看到它.
替换它

printf("sanity check\n");

要么

printf("sanity check");
fflush(stdout);

你会看到它.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐