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