我将编写一个将错误消息转换为错误代码的函数。所以我有一系列错误消息
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) 的函数?