Я собираюсь написать функцию, которая должна перевести сообщение об ошибке в код ошибки. Поэтому у меня есть массив сообщений об ошибкахСвязанный текст ошибки с кодами ошибок в 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)?
Ну, 'return arr_error_message [err];'? – 2013-02-09 21:10:02
@ H2CO3 он хочет код ошибки из сообщения об ошибке. –
Извините за свою ошибку, мне нужно перевести с error_message на error_code – Michael