0

假设您的所有函数都返回结果状态(就像 Microsoft 的 HRESULT 一样)。这些数字在一个枚举中定义,其中一个值表示一切正常,而所有其他值表示某种程度的“不正常”。

直觉上,我编号 OK = 0 和所有其他人!= 0。但是,如果您是 C 程序员(和其他几种语言),那么这与 bool 正好相反。

我开始想知道是否有任何关于此的编程指南。一般的做法是什么?优缺点都有什么?这是因为我参与了一个项目,其中 OK = 0x01 并且所有其他失败状态都是 !0x01(是的 0x0 也是失败),并且我们正在编组语言之间的返回值(枚举变为整数)。

4

1 回答 1

0

如果零没有错误,而其他任何错误都是错误,那么您可以编写

error = function_that_returns_an_error();

if( error )
    handleError();

或者

if( !error )
    allsWell();

这是非常清晰的代码

另外,有时负值是错误代码,正值是状态代码(例如“需要更多数据”,然后为零就可以了

于 2014-03-28T09:35:03.073 回答