我打算寫這應該翻譯錯誤消息錯誤代碼的功能。 所以我有錯誤訊息與錯誤代碼關聯的錯誤文本用C
const char *arr_error_message[] =
{
"Critical error",
"Unexpected error",
...
}
和錯誤代碼枚舉數組:
typedef enum error_code
{
FIRST = 0,
CRITICAL_ERROR = FIRST,
UNEXPECTER_ERROR,
...
LAST,
NOT_FOUND_ERROR
} error_code_t;
和功能將
error_code_t translate_error_code(const char *err)
{
error_code_t e = FIRST;
do
{
if (strcmp(arr_error_message[e], err) == 0) return e;
} while (++e != LAST);
return NOT_FOUND_ERROR;
}
的功能是什麼的更有效的方法實現,是否有任何方法(技巧)來實現複雜度爲O(1)的函數?
嘛,'回報arr_error_message [ERR]'? – 2013-02-09 21:10:02
@ H2CO3他想要錯誤信息中的錯誤代碼。 – 2013-02-09 21:16:59
對不起,我的錯,我需要從ERROR_MESSAGE轉化爲ERROR_CODE – Michael 2013-02-09 21:17:46