main()在哪里返回它的值?

时间:2010-04-14 13:25:16

标签: c++ c

我刚刚使用CODE :: BLOCKS + mingw编译器 如果我在程序结束时没有输入return 0,我可以看到main()返回一些整数,我知道main()返回0推断程序执行成功。我的代码中没有发现任何缺陷,为什么它会返回一些整数?

其次 任何函数都将其值返回到函数调用,main()返回其值是什么?

4 个答案:

答案 0 :(得分:10)

C ++标准说如果你没有显式地返回一个值,编译器就必须像输入一样生成代码:

return 0;

返回值的确切含义以及返回方式是特定于实现的。对于大多数操作系统,返回值将成为进程的退出代码。

答案 1 :(得分:4)

main()将其值返回给系统。然后,系统可以将其用作错误或成功代码。在Linux中你可以这样做:

 $ yourprog && someotherprog

当且仅当yourprog返回0时,它将运行yourprog,然后运行someotherprog。

在Windows中,您可以使用批处理脚本中的if errorlevel惯用法来检查程序的返回值。

此外,如果您从另一个(fork()CreateProcess()或其他内容)启动流程,您可以稍后检索其退出状态并采取相应措施。

答案 2 :(得分:2)

main()将其值返回给系统(这是'间接的,我们暂不讨论这一点。)

当控制到达具有返回值的函数的末尾时(例如,main();将返回的是寄存器中已经存在的任何内容以保存返回值(这有时是值)最后一个陈述,有时不是)。

道德,当然,你应该总是以返回0结束你的主;

答案 3 :(得分:0)

main()将它的值返回给加载器(系统)。 它表明程序是否成功执行。 返回(0);表示成功未成功:D !!!