gpt4 book ai didi

c++ - 是否保证标准输出在退出前自动刷新?它是如何工作的?

转载 作者:可可西里 更新时间:2023-11-01 15:38:31 26 4
gpt4 key购买 nike

这是代码(有效的 C 和 C++)

#include <stdio.h>

int main() {
printf("asfd");
// LINE 1
return 0;
}

如果我在第 1 行放置了段错误表达式,程序就会崩溃而不会打印任何内容(正如预期的那样)。

但为什么上面的代码会打印“asdf”并且在没有刷新缓冲区的情况下不退出?引擎盖下是什么,为什么它会按预期工作?

最佳答案

这是由 C++ 语言规范中的以下两个部分完成的:

[basic.start.main]

A return statement in main has the effect of leaving the main function and calling exit with the return value as the argument.

[lib.support.start.term]

The function exit has additional behavior in this International Standard:

  • ...
  • Next, all open C streams with unwritten buffered data are flushed.
  • ...

关于c++ - 是否保证标准输出在退出前自动刷新?它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com