Объединение (структура данных)

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

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

Пример на C++

union Some {
    int i;
    double a;
};

Это объединение хранит либо целое число (переменная i), либо число с плавающей точкой (переменная a). Поскольку объединение это вид структуры, то в Си мы будем обращаться к ней также как и к структуре т.е. через символ "->", при использовании указателя, или "." при использовании обычной переменной. Можно усложнить пример, сделав объединение частью структуры, тогда обращаться надо будет уже через структуру, то есть:

struct STRX {
   int j;
   Some v, *w;,.
} a, *b;

Рассмотрим способы обращения к объединению, заданные через указатели, переменные и смешанным образом:

a.v.i=123;
b->v.i=123;
a.w->i=123;
b->w->i=123;

Есть возможность сделать объединение безымянным :

struct STRX {
    int j;
    union {
        int i;
        double a;
    } ;
} a;

При этом способ обращения меняется:

a.i=123;
a.a=4,5;en:Union (computer science)

ja:共用体 pl:Unia (programowanie)

Личные инструменты

Served in 0.053 secs.