Основы программирования на языке Си. Кучин Н.В - 72 стр.

UptoLike

Составители: 

72
6.3. Объединения
В языке С определен еще один тип для размещения в памяти не-
скольких переменных разного типа – объединение( union ). Объявляется
объединение также как и структура, например
/* Пример 49 */
union u{
int i;
char ch;
long int l
};
Это объявление задает шаблон объединения. Можно объявить пере-
менные
union u alfa, beta;
Можно было объявить переменные одновременно с заданием шабло-
на. В отличие от структуры для переменной типа union места в памяти
выделяется ровно столько, сколько нужно полю объединения, имеюще-
му наибольший размер в байтах. В приведенном выше примере под
переменную alfa будет выделено 4 байта памяти. Действительно, поле i
требует 2 байта, поле ch – 1 байт, и поле l – 4 байта. Остальные пере-
менные будут располагаться в том же месте памяти. Синтаксис исполь-
зования полей объединения такой же, как и для структуры:
u.ch = ‘N’;
Для объединения также разрешена операция ->, если идет обраще-
ние к объединению с помощью указателя.
Программа, приведенная ниже, выдает на экран двоичный код сим-
вола, вводимого с клавиатуры:
#include < stdio.h >
#include < conio >
/* Пример 50 */
struct byte{
int b1: 1;
int b2: 1;
int b3: 1;
int b4: 1;
int b5: 1;