C перечисление (перечисление)

В этом руководстве вы узнаете о enum (перечислении) в программировании на C с помощью примеров.

В программировании на C тип перечисления (также называемый enum) - это тип данных, состоящий из целочисленных констант. Для определения перечислений используется enumключевое слово.

 флаг перечисления (const1, const2,…, constN); 

По умолчанию const1 равно 0, const2 равно 1 и так далее. Вы можете изменить значения по умолчанию для элементов перечисления во время объявления (при необходимости).

 // Изменение значений по умолчанию для констант перечисления enum suit (club = 0, diamonds = 10, hearts = 20, spades = 3,);

Объявление перечислимого типа

Когда вы определяете тип перечисления, создается план для переменной. Вот как вы можете создавать переменные перечислимого типа.

перечисление логическое (ложь, истина); enum boolean check; // объявление переменной enum

Здесь создается проверка типа переменной enum boolean.

Вы также можете объявить переменные перечисления таким образом.

 enum boolean (false, true) проверка; 

Здесь значение falseравно 0, а значение trueравно 1.

Пример: тип перечисления

 #include enum week (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday); int main() ( // creating today variable of enum week type enum week today; today = Wednesday; printf("Day %d",today+1); return 0; ) 

Вывод

 День 4

Почему используются перечисления?

Переменная перечисления может принимать только одно значение. Вот пример, чтобы продемонстрировать это,

 #include enum suit ( club = 0, diamonds = 10, hearts = 20, spades = 3 ) card; int main() ( card = club; printf("Size of enum variable = %d bytes", sizeof(card)); return 0; ) 

Вывод

 Размер переменной enum = 4 байта

Здесь мы получаем 4, потому что размер intравен 4 байтам.

Это делает enum хорошим выбором для работы с флагами.

Как использовать перечисления для флагов?

Возьмем пример,

 enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button; 

Предположим, вы разрабатываете кнопку для приложения Windows. Вы можете установить флаги ITALICS, BOLD и UNDERLINE для работы с текстом.

Есть причина, по которой все интегральные константы в приведенном выше псевдокоде являются степенью двойки.

 // В двоичном формате ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100 

Поскольку интегральные константы являются степенью двойки, вы можете объединить два или более флага одновременно без перекрытия, используя побитовое ИЛИ | оператор. Это позволяет вам выбрать сразу два или более флага. Например,

 #include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; ) 

Вывод

 5

Когда на выходе получается 5, вы всегда знаете, что используются жирный шрифт и подчеркивание.

Также вы можете добавлять флаги в соответствии с вашими требованиями.

 if (myDesign & ITALICS) (// код для курсива)

Здесь мы добавили курсив к нашему дизайну. Обратите внимание, внутри ifинструкции написан только код, выделенный курсивом .

В программировании на C вы можете выполнить почти все, что угодно, без использования перечислений. Однако в определенных ситуациях они могут быть весьма кстати.

Интересные статьи...