gpt4 book ai didi

c++ - 为什么超过 255 的返回码在 C++ 中返回不同的数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:11 25 4
gpt4 key购买 nike

例如……

#include <iostream>

using namespace std;

int main(){return 300;}

返回:

Process finished with exit code 44

??

最佳答案

标准只知道两个标准化的返回值:EXIT_SUCCESS(或零)和EXIT_FAILURE:

3.6.1/5 A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling std::exit with the return value as the argument.

18.5/8 (...) Finally, control is returned to the host environment. If status is zero or EXIT_SUCCESS, an implementation-defined form of the status successful termination is returned. If status is EXIT_- FAILURE, an implementation-defined form of the status unsuccessful termination is returned. Otherwise the status returned is implementation-defined.

因此不能保证任何其他整数按原样返回。

关于 MS Windows例如,GetExitCodeProcess()函数返回整数值,因此您将得到 300。

关于 POSIX兼容系统,例如 Linux ,规则是(“只有 8 个最低有效位(即状态和 0377)可用于等待的父进程”)。所以对于 300,它将是 44。

关于c++ - 为什么超过 255 的返回码在 C++ 中返回不同的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34912588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com