Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 1.14 Об’єднання (ипіоп) - Програмування С, С++теорія та практика (частина 1) - Studbook

Програмування С, С++теорія та практика (частина 1)

1.14 Об’єднання (ипіоп)

Об’єднання дозволяють в різні моменти часу зберігати в одному об’єкті значення різного типу. В процесі оголошення об’єднання з ним асоціюється набір типів, які можуть зберігатися в даному об’єднанні. В кожний момент часу об’єднання може зберігати значення тільки одного типу з набору. Контроль за тим, значення якого типу зберігається в даний момент в об’єднанні покладається на програміста.

Синтаксис :

ипіоп [ім'я_об'єднання]

{

тип1 елементі;

тип2 елемент2;

типИ елементів;

} [список описів];

Пам’ять, яка виділяється під змінну типу об’єднання, визначається розміром найбільш довгого з елементів об’єднання. Всі елементи об’єднання розміщуються в одній і тій же області пам’яті з однієї й тієї ж адреси. Значення поточного елемента об’єднання втрачається, коли іншому елементу об’єднання присвоюється значення.

Приклад 1: ипіоп зідп {

іп£ зVа^;

ипзідпей иVа^;

} питЬег;

Приклад 2 : ипіоп {

сЬаг *а,Ь;

£1оа£ £[20];

} Vа^ ;

В першому прикладі оголошується змінна типу об’єднання з ім’ям питЬег. Список оголошень елементів об’єднання містить дві змінні : іуаг типу іпґ і иуаг типу итідпегі. Це об’єднання дозволяє запам’ятати ціле значення в знаковому або в без знаковому вигляді. Тип об’єднання має ім’я 8ідп.

В другому прикладі оголошується змінна типу об’єднання з ім’ям уаг. Список оголошень елементів містить три оголошення : покажчика а на значення типу скаг, змінної Ь типу скаг і масиву/з 20 елементів типу /іоаґ. Тип об’єднання не має імені. Пам’ять, що виділяється під змінну уаг, рівна пам’яті, необхідної для зберігання масиву/ так як це найдовший елемент об’єднання.

 

68