我刚刚使用CODE :: BLOCKS + mingw编译器 如果我在程序结束时没有输入return 0,我可以看到main()返回一些整数,我知道main()返回0推断程序执行成功。我的代码中没有发现任何缺陷,为什么它会返回一些整数?
其次 任何函数都将其值返回到函数调用,main()返回其值是什么?
答案 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 !!!