Определение объединений

Все компоненты объявления структур, такие как шаблоны, имена типов, имена элементов и т.д. применимы и при объявлении объединений. Единственное отличие состоит в том, что при объявлении объединения вместо ключевого слова struct используется union.

Синтаксис:

union [ИмяОбъединения] {

ОпределенияЭлементов;

} ОбозначениеОбъединения;

где union – спецификатор типа;

ИмяОбъединения – идентификатор;

ОпределенияЭлементов – совокупность описаний объектов, каждый из которых служит прототипом одного из элементов объединений.

Например:

union {

char hh[2];

int ii;

} CC;

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

Как и для структурных типов, с помощью typedef можно вводить обозначения объединяющих типов.

Синтаксис:

typedef union [ИмяОбъединения]

{

ОпределенияЭлементов;

} ОбозначениеОбъединения;

Например:

typedef union uni {

double d;

int i[4];

char ch[8];

} u_name;

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

union uni a, b;

u_name x, y;

Объединение применяется для следующих целей:

· инициализации используемого объекта памяти, если в каждый момент времени только один объект из многих является активным;

· интерпретации основного представления объекта одного типа, как если бы этому объекту был присвоен другой тип.

 

Доступ к элементам объединения (полям данных)

Для обращения к элементу объединения используются те же конструкции, что и для обращения к элементу структуры:

ИмяОбъединения.ИмяЭлемента

(* УказательНаОбъединение).ИмяЭлемента

УказательНаОбъединение->ИмяЭлемента

Например:

СС.hh

(*pin).mas

pin–>mas

 








Дата добавления: 2015-02-16; просмотров: 459;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.