C enum (изброяване)

В този урок ще научите за enum (изброяване) в програмирането на C с помощта на примери.

При програмирането на C тип изброяване (наричан още enum) е тип данни, който се състои от интегрални константи. За дефиниране на изброявания enumсе използва ключовата дума.

 enum флаг (const1, const2,…, constN); 

По подразбиране const1 е 0, const2 е 1 и т.н. Можете да промените стойностите по подразбиране на елементите на enum по време на декларацията (ако е необходимо).

 // Промяна на стойностите по подразбиране на enum константи enum костюм (клуб = 0, диаманти = 10, сърца = 20, пики = 3,);

Декларация за изброен тип

Когато дефинирате тип преброяване, се създава план за променливата. Ето как можете да създавате променливи от типове enum.

enum boolean (false, true); булева проверка на enum; // деклариране на enum променлива

Тук се създава променлива проверка на типа enum boolean.

Можете също така да декларирате променливи enum по този начин.

 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

Защо се използват изброявания?

Променливата enum може да отнеме само една стойност. Ето пример, който да го демонстрира,

 #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; ) 

Изход

 Размер на променливата на изброяване = 4 байта

Тук получаваме 4, защото размерът на intе 4 байта.

Това прави enum добър избор за работа с флагове.

Как да използвам enum за флагове?

Нека вземем пример,

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

Да предположим, че проектирате бутон за приложение за Windows. Можете да зададете флагове ITALICS, BOLD и UNDERLINE за работа с текст.

Има причина, поради която всички интегрални константи са степен 2 на горния псевдокод.

 // В двоичен ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100 

Тъй като интегралните константи са степен 2, можете да комбинирате два или повече флага наведнъж, без да се припокривате, използвайки битови ИЛИ | оператор. Това ви позволява да изберете два или повече знамена наведнъж. Например,

 #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, без да използвате изброявания. Те обаче могат да бъдат доста удобни в определени ситуации.

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