C: Перечисления

Перечисление (или перечисляемый тип) представляет собой список констант с соответствующими им целочисленными значениями. Обычно они используются для упрощения кода приложений путем использования констант вместо множества условных инструкций для доступа к различным ресурсам.

Перечисляемый тип объявляется с помощью зарезервированного слова enum.

enum months {January, February, March} calendar;

Первому элементу стандартного перечисления ставится в соответствие целочисленное значение 0, однако, разработчик может самостоятельно выбрать начальное целочисленное значение, причем в это случае следующим элементам перечисления будут поставлены в соответствие следующие за ним целочисленные значения.

enum months {January = 1, February, March} calendar;

После объявления перечисления в коде приложения могут использоваться имена его констант.

enum manths month = January;

При использовании констант следует помнить о том, что в языке программирования C имеет значение регистр символов любых идентификаторов.

Впрочем, вместо имен констант могут использоваться и соответствующие им целочисленные значения.

enum months month = 0;

Пример

В примере используются имена констант из перечисления. Программа выводит различные сообщения в зависимости от задаваемого пользователем дня недели.

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     enum week {monday, tueday, wednesday, thursday, friday, saturday, sunday};
  6.    
  7.     enum week day = monday;
  8.    
  9.     if (day == monday) {
  10.         printf("Удачи в понедельник!n");
  11.     } else if ((day == saturday) || (day == sunday)) {
  12.         printf("Счастливых выходныхn");
  13.     }
  14.  
  15.     return 0;
  16. }

Загрузить исходный код примера