Урок 7.3.1. Описание перечислимого типа

7.3.1. Описание перечислимого типа

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

Описание перечисляемого типа данных осуществляется оператором вида:

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

где <имя_типа> задается идентификатором Си по усмотрению программиста; <список_значений> задается в виде: <элемент1>, <элемент2>,...,<элементN>, где любой из элементов есть либо <имя>, либо <имя> = <константное_выражение>. В качестве <имя> используется идентификатор Си; <список_переменных> – это имена переменных типа перечисление, отделенные друг от друга запятой.

Семантически описание перечисления задает имя типа, определяет именованные константы и имена переменных, которые могут принимать значения именованных констант. Значением каждой именованной константы из списка значений является целое число.

Переменные типа перечисление могут принимать значения одной из именованных констант списка значений. Константные выражения, если они используются, должны быть целыми и могут быть отрицательными. Если константные выражения отсутствуют, то по умолчанию первому имени списка значений соответствует значение 0, второму 1 и т.д.

Использование в программе именованной константы равносильно использованию ее значения. Явная инициализация именованной константы константным выражением переопределяет последовательность значений, заданных по умолчанию. Имя, следующее за переопределенным именем, принимает значение, увеличенное на 1, если только его значение не задано явно другой величиной.

Список значений может содержать повторяющиеся значения имен, но сами имена должны быть различны. Список переменных в описании перечисляемого типа может быть опущен. В этом случае описание задает лишь тип перечисление, имеющий заданное имя, и список допустимых значений. Переменные в этом случае должны быть описаны при помощи уже определенного перечисляемого типа.

Этот способ описания пользуется именем типа перечисления, иногда называемым тегом (ярлыком) перечисления, которое ссылается на ранее описанный тип и использует его список перечисления, например:

enum day {saturday,sunday=0,monday,
          tuesday,wednesday,thursday,
          friday
         } workday;
enum day nextday;
enum day today=monday;
//В С++ ключевое слово enum использовать необязательно:
day vacancy;


В первом случае определяется тип перечисления day, объявляется переменная перечисления workday. Именованные константы получают следующие значения: saturday – 0 (по умолчанию), sanday – 0 (явно), остальные имена получают значения от 1 до 5.

Во втором случае объявлена переменная nextday типа enum day. Так как тип enum day был ранее объявлен, то достаточно лишь на него сослаться. В третьем случае объявлена переменная today типа enum day, и она инициализирована значением monday из списка значений. Можно объявлять и массивы перечисляемого типа, например:

enum day week[6];

В С++ есть возможность использововать неименованные перечисления, которая фактически является альтернативной формой определения символических констант. Например:

enum {FALSE, TRUE};

Перечисляемый тип можно рассматривать как синоним целого типа.Над переменными перечисляемого типа можно производить любые операции, допустимые для переменных целого типа. Использование перечисляемого типа данных в ряде случаев дает возможность писать программу в терминах постановки задачи, а не в типах int.

рассказать друзьям и получить подарок

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Translate Переводчик

Подписка на новости

SmartResponder.ru
Ваш e-mail: *
Ваше имя: *

Хостинг для Wordpress сайтов