Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






ОБЪЕДИНЕНИЯ. ОПЕРАЦИИ, ПРЕДСТАВЛЕНИЕ. СЛОЖНОСТЬ ОПЕРАЦИЙ.




В Паскале – нет

В Си – Union <имя> {

T1 S1;

T2 S2;

Tn Sn;

}

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

Пример: иллюстрирует использование объединения distance. Сначала программа присваивает значение элементу

miles и выводит это значение. Затем программа присваивает значение элементу meters. При этом значение элемента miles теряется:

union distance

{
int miles;
long meters;
} walk;

walk.miles = 5;
cout << "Пройденное расстояние в милях " << walk.miles << endl;
walk.meters = 10000;
cout << "Пройденное расстояние в метрах " << walk.meters << endl;
Объединение определяет шаблон, с помощью которого ваши программы могут позднее объявлять переменные. Когда компилятор встречает определение объединения, он распределяет количество памяти, достаточное для хранения только самого большого элемента объединения.

Характеристики:

1)Размер – максимальный из размеров компонент sizeof (union) = max(sizeof Ti);

2)Мощность – мощность максимального типа #union = #max(Ti).

Операции:

1)Индексация по имени;

2)Присваивание А=В через memcpy;

3)Сравнение А==В через memcmp(A, B, sizeof B);

Объединения применяют для записей с вариантами (если в анкете, то каждый последующий порос зависит от предыдущего ответа).

 

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных