gpt4 book ai didi

c - c 中的主要函数 - 程序终止成功或失败

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:34 25 4
gpt4 key购买 nike

据我所知,如果 main 函数返回 0,则表示程序总是成功终止。即使成功由另一个 int 值指示。

如果 main 返回一个非零值,它是特定于实现的,如果这代表不成功的程序终止或另一个错误代码

If the value of status is zero or EXIT_SUCCESS, an implementation-defined form of the status successful termination is returned. If the value of status is EXIT_FAILURE, an implementation-defined form of the status unsuccessful termination is returned. Otherwise the status returned is implementation-defined.)

所以在 C 标准中只定义了成功(返回 0),而不是如何解释非零 int 值,对吗?例如。如果在某个系统中 1 代表“成功” return 0 也会交付 1?这是怎么做到的?

最佳答案

main 函数是代码的入口点,而不是可执行文件的入口点。可执行文件包含一个操作系统定义的入口点,它在调用 main 之前运行一些启动代码。

main 就像普通函数一样从启动代码中调用。 main 的返回值由启动代码接收,它可以执行任何必要的转换以符合操作系统的要求。

启动代码特定于每个操作系统。操作系统对可执行文件的操作和环境有要求。 C 语言对 C 代码运行的环境有要求(特别是 main 的参数和 main 的返回值)。启动代码负责弥合这两组要求之间的差距。

启动代码作为目标文件交付,通常称为“crt.o”,是“C 运行时”的缩写。该文件由链接器包含在可执行文件中。您可以通过检查链接器命令行找到该文件的实际名称。启动文件通常是链接器命令行上的第一个文件。

关于c - c 中的主要函数 - 程序终止成功或失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32210797/

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