为什么程序 return 的退出代码不是我指定的?

Why does the program return with an exit code other than I specified?

这是一个简单的程序:

int main() {
    return 0;
}

退出代码是0

如果我写:

int main() {
    return 700;
}

退出代码是188

为什么此处的退出代码是 188 而不是 700

而 C 中的主函数 returns 一个 int, operating systems don't necessarily use int as the error code.

700 在二进制中是 1010111100.
将该值截断为八位会产生 10111100.
这等于十进制的 188

这意味着您的 OS 使用八位错误代码。1


1 或者可能是九位,因为第 8th 位(请注意,我们从 0 开始计数)是 0 这里。这是极不可能的,因为 9 不是 2 的幂,不过,数据宽度的约定也是如此。