C Перечислимые типы

Введение в перечисляемые типы C

С использованиемtypedefиenumКлючевые слова мы можем определить тип, который может иметь то или иное значение.

Это одно из самых важных примененийtypedefключевое слово.

Это синтаксис перечислимого типа:

typedef enum {
  //...values
} TYPENAME;

Нумерованный тип, который мы создаем, обычно, по соглашению, имеет верхний регистр.

Вот простой пример:

typedef enum {
  true,
  false
} BOOLEAN;

C поставляется сboolтип, поэтому этот пример не совсем практичен, но вы поняли идею.

Другой пример - определение дней недели:

typedef enum {
  monday,
  tuesday,
  wednesday,
  thursday,
  friday,
  saturday,
  sunday
} WEEKDAY;

Вот простая программа, использующая этот перечислимый тип:

#include <stdio.h>

typedef enum {
  monday,
  tuesday,
  wednesday,
  thursday,
  friday,
  saturday,
  sunday
} WEEKDAY;

int main(void) { WEEKDAY day = monday;

if (day == monday) { printf(“It’s monday!”); } else { printf(“It’s not monday”); } }

Каждый элемент в определении перечисления внутренне связан с целым числом. Итак, в этом примереmonday is 0, tuesdayравно 1 и так далее.

Это означает, что условное выражение могло бытьif (day == 0)вместоif (day == monday), но нам, людям, проще рассуждать именами, а не числами, так что это очень удобный синтаксис.

Скачать мою бесплатнуюСправочник C


Больше уроков по clang: