2013-09-25 155 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(); 

這是相當清楚的代碼

除此之外,有時甚至是負的值錯誤代碼和正數值是狀態代碼(例如「需要更多數據」,然後零代表全部都是好的)