2013-08-23 43 views
1

它讓我困惑了很長時間,有沒有一種好的方法來設計C中的錯誤代碼作爲返回代碼。我曾經使用幻數或全局宏來定義一個特定的錯誤,如使用-1作爲一般失敗。但是當項目變大時,我發現管理這些錯誤代碼並不容易。有人能給我一個例子或指導如何設計好的錯誤代碼?是否有一些指南用於設計C代碼中的錯誤代碼?

我曾經認爲錯誤代碼可能會被拆分成一些位域來指定錯誤的類型或引發錯誤或其他的函數。我正在尋找靈感,並且沒有針對錯誤代碼的特定項目。也許在一些着名的項目中有一些好的編碼錯誤代碼,請告訴我該項目的名稱

我會很感激。

回答

2

您可能會喜歡使用enum數據類型。例如:

typedef enum { KEY_NOT_FOUND, INVALID_DATA } errortype; 
+0

你說得對。我認爲我的問題可能改爲「如何編碼錯誤代碼」。例如:使用int變量的前8位作爲錯誤類型,其他位指示具體錯誤。 – Arthur

2

strerror提供用戶定義的錯誤codes.This實施strerror提供了一種用於用戶定義的可擴展性。 errno.h定義爲__ELASTERROR,它可以用作用戶定義的錯誤值的基礎。

+0

它可以幫助我。它提供了一些常見的錯誤,我可以自己擴展它。所以未來的問題是如何編寫用戶定義的錯誤代碼。我認爲一個簡單的整數對於很多項目來說都是很好的,但是應該有一些編碼方式來使錯誤代碼更易於管理。 – Arthur

+0

@Arthur請詳細說明你要如何編碼你的錯誤代碼(我的意思是一些佈局)。你可以重新編輯你的文章,使其更加清晰(在這裏你可以得到很多空間來寫作)。你已經有了一個簡單完美的解決方案,形式爲grijesh的答案。 –

+0

謝謝你的建議。我對錯誤代碼沒有確切的瞭解。我只是尋找靈感。 – Arthur