C enum (Перерахування)

У цьому посібнику ви дізнаєтесь про перерахування (перерахування) у програмуванні на С на прикладах.

У програмуванні на С тип переліку (також званий enum) - це тип даних, який складається з інтегральних констант. Для визначення переліків використовується enumключове слово.

 прапор переліку (const1, const2,…, constN); 

За замовчуванням const1 дорівнює 0, const2 дорівнює 1 тощо. Ви можете змінити значення за замовчуванням елементів перерахування під час оголошення (за необхідності).

 // Зміна значень за замовчуванням констант переліку enum suit (клуб = 0, діаманти = 10, серця = 20, піки = 3,);

Декларація про перелічений тип

Коли ви визначаєте тип переліку, створюється план змінної. Ось як ви можете створювати змінні типів переліку.

enum логічний (false, true); булева перевірка enum; // оголошення змінної переліку

Тут створюється перевірка змінної типу enum boolean.

Ви також можете оголосити такі змінні змінних enum.

 перелічити логічну (хибну, істинну) перевірку; 

Тут значення 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 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виписки пишеться лише код курсиву .

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

Цікаві статті...