Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Typedef union data





{

char str[80];

int a;

double x;

} new_data;

Определения новых переменных (например, student1, student2) объединений будут выглядеть таким образом:


new_data student1, student2;

Объединения не относятся ни к скалярным данным, ни к данным агрегирующих типов [3]. Они не могут сравниваться операциями «==» и «!=» по тем же самым причинам, что и структуры, поскольку элементы объединения необязательно хранятся в последовательных байтах памяти.

Объединения часто используются для специального преобразования типов, поскольку к находящимся в них данным можно обращаться разными способами [4].

 

1.2. Перечислимые типы

Перечислимый (enumerated type) тип служит для объявления символических имен, представляющих целочисленные константы [1]. Можно сказать, что это тип данных, заданных списком принадлежащих ему значений.

Назначение перечислимых типов заключается в том, чтобы повысить удобочитаемость программы [1]. Синтаксис в этом случае аналогичен тому, который используется для описания структур.

Примеры объявления перечислимого типа:

enum spectrum {red, orange, yellow, green, blue, violet};

enum spectrum color;

Первое объявление устанавливает spectrum как имя дескриптора, который позволяет использовать enum spectrum в качестве имени типа. Второе объявление делает color переменной этого типа. Идентификаторы, заключенные в фигурные скобки, перечисляют возможные значения, которые может принимать переменная spectrum. Соответственно, возможными значениями color являются red, orange, yellow и т. д. Но эти возможные значения являются целочисленными, т. е. 0, 1, 2, 3, 4, 5. Другими словами, значения в enum начинаются с 0, если не задано иное число, и всегда увеличиваются на 1.

В общем случае перечислимые константы имеют тип int, но перечислимые переменные не так жестко привязаны к целочисленному типу данных, поскольку он может содержать перечислимые константы. Например, перечислимые константы переменной spectrum имеют диапазон [0; 5] (как в массиве), поэтому компилятор может выбрать тип unsigned char для представления переменной color.

В языке программирования С к перечислимой переменной можно применять операции инкрементирования «++» и декрементирования «––». Например,

for (color = red; color <= violet; ++color)

{

¼;;

}

По умолчанию константам в перечислимом списке присваиваются целые значения 0, 1, 2 и т. д. В то же время возможны присваиваемые значения, например:

enum levels {low = 100, medium = 500, high = 2000};


Если назначить конкретное значение одной из констант, то все следующие константы будут пронумерованы последовательно в возрастающем порядке, например:

enum feline {cat, lynx = 10, puma, tiger};

В этом случае cat (кошка) получает значение 0 по умолчанию, lynx (рысь), puma (пума), tiger (тигр) – соответственно 10, 11, 12.

Перечисления особенно полезны там, где не требуется преобразования значений (целого типа) в имена (массив символов), в частности используются в компиляторах для создания таблицы соответствия символов [4].

 







Дата добавления: 2015-09-06; просмотров: 382. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

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

Метод архитекторов Этот метод является наиболее часто используемым и может применяться в трех модификациях: способ с двумя точками схода, способ с одной точкой схода, способ вертикальной плоскости и опущенного плана...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

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

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

Studopedia.info - Студопедия - 2014-2026 год . (0.009 сек.) русская версия | украинская версия