У цьому посібнику ви дізнаєтесь про перерахування (перерахування) у програмуванні на С на прикладах.
У програмуванні на С тип переліку (також званий 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
виписки пишеться лише код курсиву .
Ви можете досягти майже всього в програмуванні на С, не використовуючи перелічення. Однак у певних ситуаціях вони можуть бути дуже зручними.