【发布时间】:2014-02-10 14:07:19
【问题描述】:
我用 C++ 编译了两个简单的程序,对每个程序进行了微小的更改,并使用查询 echo $? 输出 main 返回给操作系统的值。
方案一
int main()
{
return 0 ;
}
方案 2
int main()
{
return -1 ;
}
当我运行第一个程序并执行 echo $? 时,值是预期的 0,但是当我运行第二个程序并执行 echo $? 时,值是 255 而不是预期的 -1。
为什么会这样?
我正在使用 Ubuntu 12.04 LTS 以防万一
【问题讨论】:
-
Linux 只使用从
main()返回的最低有效 8 位,并将其视为无符号数。 -
@MichaelBurr:您应该将其发布为答案(我正要发布)。
标签: c++ return-value