Глава 9. Описатели и спецификаторы данных________________________207

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

struct DOS_DATE date;

и присвойте значение каждому элементу как обычной переменной:

date. day =18;

date.month = 2;

date', year = 1997;

В ваших собственных программах, возможно, будет "дешевле" в плане программирования и размеров программы не хранить значения в виде битовых полей — потому, что для управления ими и их преобразования потребуется дополнительный код. Следующий раздел представляет ключевое слово C++, дающее возможность иногда обходить эту проблему с помощью неявного битового преобразования.

union

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

Совет

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

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

Синтаксис структуры: •

struct struct name {

// элементы };