从 C 中的主函数返回与退出

FRA*_*NAD 3 c assembly

嗨,我想知道从主函数返回和退出之间的区别是什么。调用它们中的每一个时,幕后会发生什么,以及在每种情况下如何返回控件。如果有人可以深入研究这个主题,我真的会很高兴。

ric*_*ici 9

没有区别。

在幕后,会发生什么(至少在一些流行的操作系统上)是这样的:

// Set up argc and argv
int retcode = main(argc, argv);
exit(retcode);
Run Code Online (Sandbox Code Playgroud)

该行为由 C 标准保证:

...从对main函数的初始调用返回等效于以exit函数返回的值main作为参数调用该函数...(第 5.1.2.2.3 节)

  • @supercat:这种情况包含在我引用的标准的同一段落中。但是,当然。 (3认同)