Slavka_online
@Slavka_online
Интересная личность

Зачем нужны переменные перечисления?

Зачем нужно ябъявлять переменную перечисления? И почему в программировании микроконтроллеров чаще применятся конструкция #define ?
  • Вопрос задан
  • 1415 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Eddy_Em
И почему в программировании микроконтроллеров чаще применятся конструкция #define?

Да ладно! Не встречал как-то. Обычно define используют, если нужно 1-2 параметра определить, а уж когда их куча, то удобней enum использовать, который гарантирует, что не будет случаев, когда разным флагам одно и то же значение приписали.
Ответ написан
Комментировать
ThePyzhov
@ThePyzhov
iOS Ninja
Зачем нужны переменные перечисления?

Для удобства.
Например удобно объявлять перечисления для цветов: RED, GREEN, BLUE и т.д. если пишешь какой-нибудь тетрис, в котором тетрамины разных цветов.
Ответ написан
@abcd0x00
Основное отличие от символических констант в том, что перечисления имеют другую область видимости
#include <stdio.h>

int main(void)
{
    enum { A, B, C };
    {
        enum { A = 10 };
        printf("%d\n", A);
    }
    printf("%d %d %d\n", A, B, C);
    return 0;
}


[guest@localhost c]$ .ansi t.c -o t
[guest@localhost c]$ ./t
10
0 1 2
[guest@localhost c]$

А назначение перечислений - в быстром создании констант с осмысленными именами. Дело не в том, что они идут по порядку, а в том, что по умолчанию они различаются. То есть в пределах одного перечисления не нужно заботиться о том, чтобы там что-то чему-то не было равно.
Ответ написан
Комментировать
Slavka_online
@Slavka_online Автор вопроса
Интересная личность
нет я понимаю что конструкция enum {...}; облегчает жизнь, но зачем нужно enum varName {...}; ? для чего потом используется varName ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы