【发布时间】:2016-01-20 23:23:40
【问题描述】:
例如...
#include <iostream>
using namespace std;
int main(){return 300;}
返回:
Process finished with exit code 44
??
【问题讨论】:
-
它只占用 8 位。
300 & 0xff == 44。很确定这主要是 Unix 的东西。请参阅waitpid联机帮助页中的WEXITSTATUS- 状态是 OR'd 到其他一些值。 -
你能解释一下原因吗?是否可以返回更高的数字?
-
没有超过 255 的返回码。操作系统会忽略前八位之外的任何位。
-
或许值得指出的是,这只适用于程序的返回码。显然,非主函数可以返回任何他们喜欢的东西。通常程序返回码只是用于错误处理,所以 255 个值就足够了(您的实际输出通常应该转到标准输出,以便可以通过管道传输)
-
进程返回码的处理将取决于操作系统,而 C++ 标准基本上只是说实现定义了发生的事情。