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

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

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. Нарушение авторских прав; Мы поможем в написании вашей работы!




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

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

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

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