Laz*_*zer 4 c c++ return-value
但我在这里问的问题是为什么被0认为是Success?
我们总是联系0在一起false,不是吗?
Joh*_*itb 20
因为失败案例多于成功案例.
通常,我们成功的原因只有一个(因为我们成功了:)),但是有很多原因导致我们失败.所以0意味着成功,其他一切意味着失败,价值可以用来报告原因.
对于代码中的函数,这是不同的,因为您是指定接口的函数,因此只需使用bool它就足够了.因为main,有一个固定的退货界面,可能有程序只报告成功/失败,但其他程序需要更精细的错误报告.为了满足所有这些,我们将有多个错误案例.
我必须对约翰内斯的回答嗤之以鼻.True 0用于成功,因为只有1个成功的结果,而可能有许多不成功的结果.但我的经验是,返回码也有少做的原因失败比水平故障.
回到批处理编程的时代,通常有返回代码的约定,允许整个执行流的某些自动化.因此返回代码4可能是一个警告,但下一个工作可能会继续; 8可能意味着工作流应该停止; 12可能意味着发生灾难性事件,应通知消防部门.
同样,批次会留出一些返回代码范围,以便整个批处理流可以分支.例如,如果更新程序返回XX,则批处理可能会跳过备份步骤,因为没有任何更改.
返回代码作为失败的原因并不是那么有用,当然也不像日志文件,核心转储,控制台警报等等.我从未见过一个返回XX的系统,因为例如"找不到这样的文件".