从main返回的值以系统相关的方式访问。 在UNIX和Windows系统上,您必须在远程执行程序 发出适当的echo命令。在UNIX上,我们获取状态 echo $?
所以,如果程序是
int main ()
{
return -88;
}
为什么echo $?
不归还? (168打印在echo
)
答案 0 :(得分:4)
确实如此。然而,它会将值转换为无符号的8位值,即256 - 88 = 168.这是系统相关的习惯的一部分。
答案 1 :(得分:1)
从main
返回值与使用该值调用std::exit
相同。这就是标准的最新草案所说的关于std::exit
(18.5,status
是你称之为的价值):
最后,控制权返回给主机环境。如果是
status
零或EXIT_SUCCESS
,一种实现定义的状态形式 成功终止将被退回。如果status
为EXIT_FAILURE
,则状态的实现定义形式不成功 终止被退回。否则返回的状态是 实现定义的。
通常,该值可以按原样解释,也可以转换为较小的(可能是无符号)类型,但这实际上取决于您的环境和实现。