【发布时间】:2015-10-16 01:34:37
【问题描述】:
请注意,我正在运行一台 linux 机器,尽管我认为在 windows(或其他)机器上的结果没有什么不同。
这是一个简单的问题 - C++ 程序通常返回 32 位 int。如果我return -1,然后从终端打印结果,结果就是255。
这是为什么?我觉得链接这是我应该知道的,或者很多年前就应该注意到的——我以前从未真正使用过返回码,也从未想过。
测试 C++ 程序:
int main()
{
return -1;
}
编译:
g++ main.cpp -o a.out
运行:
./a.out
检查结果:
echo $?
结果:
255
我本来希望看到 2^32 - 1。
为什么结果255 不是-1 甚至4294967295。 (2^32 - 1)
【问题讨论】:
-
"目前大多数基于 Unix 的系统只支持 8 位返回值。"
-
“我不认为 Windows 上的结果不同”错误ExitCodes bigger than 255, possible? Windows 可以使用整个 32 位范围
标签: c++ c operating-system integer return-value