Тип данных enum (или перечисление) в языке Си.

Тип данных enum (или перечисление) применяется чтобы дать осмысленные имена привязанные к целым числам. 1) По умолчанию элементы перечисления нумеруются с нуля и каждый следующий элемент на единицу больше предыдущего.


enum {NONE, CHAR, INT}; // Анонимное перечисление NONE = 0, CHAR = 1, INT = 2
2) Если задать элементу перечисления явное значение (целочисленное), то следующие элементы будут увеличиваться на единицу.

enum {NONE = 2, CHAR, INT}; // NONE = 2, CHAR = 3, INT = 4
printf("%d ", CHAR); // Выведет 3
3) Элементы перечисления могут иметь отрицательные значения.

enum {NONE = -3, CHAR, INT}; // NONE = -3, CHAR = -2, INT = -1
4) Элементы перечисления могут иметь одинаковые целочисленные значения и их значения могут идти не по порядку (при явной инициализации элементов).

enum {NONE = 3, CHAR, INT = 2, FLOAT, DOUBLE}; // NONE = 3, CHAR = 4, INT = 2, FLOAT = 3, DOUBLE = 4
5) Перечисление может иметь имя и тогда можно создавать элементы перечисления.

enum TYPE{NONE = 2, CHAR, INT}; // NONE = 2, CHAR = 3, INT = 4
enum TYPE a = CHAR; // a = 3
printf("NONE = %d, CHAR=%d, INT=%d, a=%d", NONE, CHAR, INT, a); // NONE = 2, CHAR=3, INT=4, a=3
6) Можно сразу создать элемент перечисления указав имя (имена) после фигурных скобок.

enum TYPE{NONE = 2, CHAR, INT}type_sample; // NONE = 2, CHAR = 3, INT = 4, type_sample = неопределенное значение
type_sample = CHAR; // type_sample = 3
printf("NONE = %d, CHAR=%d, INT=%d, type_sample=%d", NONE, CHAR, INT, type_sample); // NONE = 2, CHAR=3, INT=4, type_sample=3
2025-05-12



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

bool тип данных в языке Си.
Тип данных char в языке Си.
double тип данных языка Си. Число с плавающей точкой с двойной точностью.
Тип данных enum (или перечисление) в языке Си.
float тип данных языка Си.
int целочисленный тип данных языка Си.
long и long long целочисленные типы данных в языке Си.
short тип данных языка Си.
size_t тип данных языка Си.
struct тип данных языка Си.
union или объединение - тип данных в языке Си.
Ключевое слово языка Си _Bool