Поддержка JavaScript отключена
SBP-Program | |||||
На главную -> C |   | ||||
  |
Объединения в CДля объявления объединений в C используют ключевое слово union. Объединение в C может содержать объявления полей разных типов, кроме типа самого данного объединения. Особенностью объединения в Си является то, что все поля объединения имеют одинаковый адрес в памяти. Это приводит к тому, что в данный момент можно определить значение только одного поля объединения в Си. Пример union в C: Получаем: ![]() В примере объявляем объединение myUnion, а в нём 4 поля: Объявить объединение в Си означает описать новый тип данных. И каков этот тип? union myUnion. Объявим и определим переменную uUnion типа union myUnion: union myUnion uUnion = {150};
инициализировать можно только первую переменную объединения в C. Память для объединения выделяется по размеру самого длинного поля, в примере это поле типа double. Все поля объединения имеют одинаковый адрес в памяти. Когда мы определяем значение поля nInt, а мы его определили в момент инициализации: union myUnion uUnion = {150};
то 150 храниться в памяти по общему для всех полей адресу. Когда мы определяем значение поля dDouble, то значение поля nInt стирается и на его место записывается значение поля dDouble и т.д. Это характерная особенность union в Си: в данный момент можно определить значение только одного поля объединения в Си. Программирование |
  | |||
 
|
 
|
||||