Первый тест, вероятно, должен быть:
if (err_catch != E_GOOD)
Это явное выражение «произошла ошибка».Кстати, ваш код выглядит как проходящий через компилятор C ++.C не создает тип error_code
с предшествующим enum
;вам нужно было бы добавить:
typedef enum error_code error_code;
Там будет очень мало различий между ними с точки зрения генерируемого кода.
Я бы, вероятно, просто использовал Вариант 1 (запись if
)чтобы было ясно, что коммутатор имеет дело только со случаями ошибок (потому что он имеет дело только со случаями ошибок), но я бы не стал возражать против этого, если бы он был представлен мне для проверки кода.