typedef enum {
DISABLE = 0,
ENABLE = !DISABLE
} FunctionalState;
Есть ли какое-либо преимущество у такой записи или можно заменить более простым кодом?
typedef enum {
DISABLE,
ENABLE
} FunctionalState;
Ответ
Если речь идет о получаемых в результате таких объявлений значениях enum-констант, то нет, разницы никакой нет. А уж есть ли тут какой-то "преимущество" говорить трудно, учитывая, то объявления немедленно эквивалентны.
Вариант ENABLE = !DISABLE явно выражает тот либо факт, что должно выполняться ENABLE == 1, либо тот факт, что должно выполняться ENABLE != 0. Какой из них - не ясно, но по крайней мере какая-то взаимосвязь между DISABLE и ENABLE явно передана.
Во втором варианте читателю кода никакой явной взаимосвязи не видно. То есть ничего не мешает читателю предположить, что данные константы могут иметь произвольные значения.
Комментариев нет:
Отправить комментарий