为什么程序返回的是除我指定的退出代码?

Ree*_*ose 4 c exit-code

这是一个简单的程序:

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

退出代码是0.

如果我写:

int main() {
    return 700;
}
Run Code Online (Sandbox Code Playgroud)

退出代码是188.

为什么188不是700退出代码在这里?

cad*_*luk 9

虽然C中的主函数返回一个int,但操作系统不一定int用作错误代码.

700二进制是1010111100.
将此值截断为8位会产生10111100.
这等于188十进制.

这意味着您的操作系统使用8位来表示错误代码.1


1或可能九个位,因为8 位(我们从0开始计数,请注意)是0在这里.然而,这是非常不可能的,因为它9不是2数据宽度的惯例.