我读过的 C++ Primer 书说
从 main 返回的值以系统相关的方式访问。在 UNIX 和 Windows 系统上,在远处执行程序时,您必须发出适当的回显命令。在 UNIX 上,我们通过 echo $?
所以,如果程序是
int main ()
{
return -88;
}
为什么不echo $?
退货呢?(168印在上面echo
)
确实如此。不过,它会将值转换为无符号的 8 位值,即 256 - 88 = 168。这是依赖于系统的习惯的一部分。
从返回值与使用该值main
调用相同std::exit
。这就是标准的后期草案所说的std::exit
(18.5,status
是您调用它的值):
最后,控制权返回到主机环境。如果
status
为零或,则返回成功终止EXIT_SUCCESS
状态的实现定义形式 。如果是,则返回状态未成功终止的实现定义形式。否则返回的状态是实现定义的。status
EXIT_FAILURE
通常,该值要么按原样解释,要么转换为更小的(可能是无符号的)类型,但这实际上取决于您的环境和实现。