русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Используются для хранения значений различных типов в одной и той же области памяти, но не одновременно.

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

union <имя структуры>{<тип 1> <имя 1>;

<тип 2> <имя 2>;

<тип N> <имя N> ;

}

Для объявления переменной записывается:

union <имя структуры> <имя переменной>;

В объединении не допускаются элементы типа полей битов.

Можно объявлять переменные одновременно с заданием шаблона.

Пример: а) union u { int i; char c; long l; } a, *р ; б) struct s { int i; char c; long l ; } b;

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

При инициализации объединения задается значение первого элемента в соответствии с его типом. Например,

union u { char name [10];

int t;

} u1=²Утро²;

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

Пример использования полей битов и объединений.

#include <stdio.h>

#include <conio.h>

struct byte

{

unsigned b1:1;

unsigned b2:1; // целое без знака

unsigned b3:1;

unsigned b4:1;

unsigned b5:1;

unsigned b6:1;

unsigned b7:1;

unsigned b8:1;

}; //Определена структура битовое поле

union bits {

char ch;

struct byte b;

} u;

void decode(union bits b); // Прототип функции

void main()

{

do { u.ch=getche();

printf(": ");

decode(u);

} while (u.ch!='q'); // цикл повторять, пока не будет

} // введен символ "q"

void decode(union bits p) // функция

{

printf("%d%d%d%d%d%d%d%d",p.b.b8,p.b.b7,p.b.b6,

p.b.b5, p.b.b4,p.b.b3,p.b.b2,p.b.b1);

printf("\n");

}

Просмотров: 483


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.