В этом руководстве вы узнаете о 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 вы можете выполнить почти все, что угодно, без использования перечислений. Однако в определенных ситуациях они могут быть весьма кстати.