union c



C union

Автор Ѐамзан Алисханов задал вопрос в разделе Другие языки и технологии

Объясните русским языком union в Си (Объединения) и получил лучший ответ

Ответ от Николай Веселуха[гуру]
union - частный случай структуры, при котором все поля, располагаются по одному и тому же адресу. Размер union равен самому большому из длин его полей. Достоинствами union является экономия памяти. Недостаток - в каждый момент времени в переменной типа union может храниться значение только одного поля.
Объединения применяются для экономии памяти, когда известно, что более одного поля в переменной не понадобится.
Николай Веселуха
Высший разум
(193362)
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <windows.h>
union Argb
{
unsigned long color;
unsigned char argb[4];
};
enum OpticalSpectrum
{
red,
orange,
yellow,
green,
blue,
darkblue,
violet
};
void main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
union Argb c1;
c1.argb[0] = 200; // красный
c1.argb[1] = 50; // зелёный
c1.argb[2] = 120; // синий
c1.argb[3] = 0; // прозрачность
printf("
color = %u
", c1);
printf("
color = %x
", c1);
printf("
color = %u
", c1.color);
printf("
color = %x
", c1.color);
enum OpticalSpectrum c2;
c2 = green;
printf("
green = %d", green);
if (c2 == green) system("color 0A");
getch();
}
http://msdn.microsoft.com/en-us/library/e305240e-9e11-4006-98cc-26f4932d2118(VS.85)

Ответ от Krab Вark[гуру]
Структуры - когда удобно хранить одновременно несколько вещей вместе в одной коробке, объединения - когда в коробке в каждый момент хранится только одна из этих вещей.

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Объясните русским языком union в Си (Объединения)
Объединение структура данных на Википедии
Посмотрите статью на википедии про Объединение структура данных
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*