C перечисления
Перечисления C
В этом руководстве вы узнаете о enum (перечислении) в программировании на C с помощью примеров.
В программировании на C тип перечисления (также называемый enum) – это тип данных, состоящий из целочисленных констант. Чтобы определить перечисления, enum
используется ключевое слово.
enum flag {const1, const2, ..., constN};
По умолчанию const1 равен 0, const2 равен 1 и так далее. Вы можете изменить значения по умолчанию элементов перечисления во время объявления (при необходимости).
// Changing default values of enum constants enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3, };<час>
Объявление перечисляемого типа
Когда вы определяете тип перечисления, создается схема переменной. Вот как вы можете создавать переменные типов enum.
enum boolean {false, true}; enum boolean check; // declaring an enum variable
Здесь переменная check типа enum boolean
создается.
Вы также можете объявить перечисляемые переменные следующим образом.
enum boolean {false, true} check;
Здесь значение false
равно 0 и значение true
равно 1.
Пример:тип перечисления
#include <stdio.h>
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;
}
Вывод
Day 4<час>
Почему используются перечисления?
Переменная перечисления может принимать только одно значение. Вот пример, чтобы продемонстрировать это,
#include <stdio.h>
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;
}
Вывод
Size of enum variable = 4 bytes
Здесь мы получаем
4
потому что размер int
составляет 4 байта.
Это делает enum хорошим выбором для работы с флагами.
<час>Как использовать перечисления для флагов?
Возьмем пример,
enum designFlags {
ITALICS = 1,
BOLD = 2,
UNDERLINE = 4
} button;
Предположим, вы разрабатываете кнопку для приложения Windows. Вы можете установить флаги КУРСИВ , ЖИРНЫЙ и ПОДЧЕРКИВАТЬ для работы с текстом.
Есть причина, по которой все интегральные константы являются степенью двойки в приведенном выше псевдокоде.
// In binary ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100
Поскольку интегральные константы являются степенью числа 2, вы можете одновременно комбинировать два или более флага без перекрытия, используя побитовое ИЛИ | оператор. Это позволяет выбрать два или более флага одновременно. Например,
#include <stdio.h>
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) { // code for italics }
Здесь мы добавили курсив в наш дизайн. Обратите внимание, внутри if
написан только код для курсива. заявление.
Вы можете выполнить почти все в программировании на C без использования перечислений. Однако в определенных ситуациях они могут оказаться весьма полезными.
Язык C
- C# Hello World — ваша первая программа на C#
- Ключевые слова и идентификаторы C#
- Переменные C# и (примитивные) типы данных
- Операторы С#
- Побитовые операторы C# и операторы сдвига битов
- Базовый ввод и вывод C#
- Выражения, операторы и блоки C# (с примерами)
- С# Комментарии
- Оператор переключения C#
- С# тернарный (?:) оператор