2013-09-25 126 views
0

假设您已经将所有函数返回了结果状态(就像Microsoft的HRESULT一样)。这些数字在enum中定义,其中一个值指示一切正常,而其他所有值都表示某种不正确的味道。返回枚举值准则

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

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

+2

它不会是微软,如果他们像普通人一样;-) –

+0

我相信它来自程序退出状态 - 0为好,其他一切为非好。它与布尔不是相反的 - 在逻辑语境中,(布尔)9会是什么? – keltar

回答

0

如果零是没有错误,和其他任何想法是错误的,那么你可以写

error = function_that_returns_an_error(); 

if(error) 
    handleError(); 

if(!error) 
    allsWell(); 

这是相当清楚的代码

除此之外,有时甚至是负的值错误代码和正数值是状态代码(例如“需要更多数据”,然后零代表全部都是好的)