Перечисления. Перечислимый тип (enumeration)

Перечислимый тип (enumeration).

Этот тип – множество поименованных целых констант.

Перечислимый тип определяет все допустимые значения, которые могут иметь переменные этого типа.

Формат:

enum имя_типа {список_названий} список переменных;

Пример:

enum seasons {win,spr,sum,aut};

enum seasons s;

Каждое из имен win,spr,sum,aut представляет собой целую величину. По умолчанию они соответственно равны 0,1,2,3.

Оператор

printf(“%d\t%d”,win,aut);

выдаст числа 0 и 3.

Во время объявления типа можно одному или нескольким именам присвоить другие значения:

enum value {one=1,two,three,ten=10,thausand=1000,next};

Если распечатать

printf(“%d\t%d\t%d\t%d\t%d\t%d\n”,one,two,three,ten,thausand,next);

то на экране появятся числа 1 2 3 10 1000 1001, то есть каждый следующий символ увеличивается на 1 по сравнению с предыдущим, если нет другого присвоения.

С переменными перечислимого типа можно производить следующие операции:

1. Присваивать переменную типа enum другой переменной того же типа.

2. Провести сравнение с целью выяснения равенства или неравенства.

3. Арифметические операции с константами типа enum (i=win-aut);

Нельзя использовать арифметические операции и операции ++ и -- для переменных типа enum.

Основная причина использования перечислимого типа – это улучшение читаемости программ.

enum seasons {win,spr,sum,aut} s,s1;

printf("%d\t%d\t%d\t%d\t",win,spr,sum,aut);

s=win;

s1=aut;

int i=spr;

// sum=3; //ошибка

printf("\ns=%d\ts1=%d\ti=%d\n",s,s1,i);

Typedef

Переименование типов – typedef

Язык Си позволяет дать новое название уже существующим типам данных.

При этом не создается новый тип данных.

Пример:

typedef struct st {

char name [30];

char group[5];

}STUDENT;

Теперь можно использовать два варианта определения переменной структуры:

1. struct st var1;

2. STUDENT var1;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: