Объединения и эффективное использование памяти
Поймите различия между struct и union и узнайте, как объединения оптимизируют использование памяти
«Объединения и эффективное использование памяти» — бесплатный урок C Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C Academy содержит 3 уроков всего.
Объединения и эффективное использование памяти
Объединения и эффективное использование памяти
Объединение — это специальный тип данных, позволяющий хранить данные разных типов в одной области памяти.
В этом уроке Вы узнаете:
- Как определять и использовать объединения.
- Чем структуры отличаются от объединений.
- Как объединения оптимизируют использование памяти.

Что такое объединение
Что такое объединение?
Объединение похоже на структуру, но все его члены используют одну и ту же область памяти.
Пример:
union Data {
int i;
float f;
char str[20];
};
Здесь i, f и str используют одну и ту же область памяти.
Объявление и использование объединения
Объявление и использование объединения
Объединения объявляются и используются так же, как структуры:
union Data d1;
Присваивание значений:
d1.i = 10;
Одновременно хранить значение может только один член.
Пример: использование объединения
Пример: использование объединения
Эта программа демонстрирует, как объединение хранит значения в общей области памяти.
#include <stdio.h>
union Data {
int i;
float f;
char str[20];
};
int main() {
union Data d1;
d1.i = 10;
printf("Integer: %d\n", d1.i);
d1.f = 20.5;
printf("Float: %f\n", d1.f);
return 0;
}Распределение памяти в объединениях
Распределение памяти в объединениях
В отличие от структур, размер объединения определяется его самым большим членом.
Пример:
union Data {
int i; // 4 bytes
float f; // 4 bytes
char str[20]; // 20 bytes
};
Размер этого объединения составляет 20 байт, а не 28.
Различия между структурой и объединением
Различия между структурой и объединением
Структура:
- У каждого члена есть отдельная область памяти.
- Размер равен сумме размеров всех членов.
Объединение:
- Все члены используют одну и ту же область памяти.
- Размер определяется самым большим членом.
Пример: сравнение структуры и объединения
Пример: сравнение структуры и объединения
Эта программа показывает размер памяти структуры и объединения.
#include <stdio.h>
struct StructExample {
int i;
float f;
char str[20];
};
union UnionExample {
int i;
float f;
char str[20];
};
int main() {
printf("Size of struct: %lu bytes\n", sizeof(struct StructExample));
printf("Size of union: %lu bytes\n", sizeof(union UnionExample));
return 0;
}Когда использовать объединения
Когда использовать объединения?
Объединения полезны, когда:
- Эффективное использование памяти имеет первостепенное значение.
- Переменной нужно хранить значения разных типов в разное время.
- Вы работаете с аппаратными регистрами.
Итоги
Итоги
В этом уроке Вы узнали:
- Как работают объединения и как они экономят память.
- Чем структуры отличаются от объединений.
- Как использовать объединения на практике.
Далее мы рассмотрим перечисления в C!

Часто задаваемые вопросы
Урок «Объединения и эффективное использование памяти» бесплатный?
Да — полный текст урока «Объединения и эффективное использование памяти» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C Academy, подпишись на CoddyKit PRO. Курс C Academy содержит 3 уроков всего.
Чему я научусь в уроке «Объединения и эффективное использование памяти»?
Поймите различия между struct и union и узнайте, как объединения оптимизируют использование памяти Ты практикуешь C Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C Academy?
Предыдущий опыт не требуется. C Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.
Сколько времени занимает урок «Объединения и эффективное использование памяти»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C Academy?
Да. Каждый урок C Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Определение и использование структур
- Объединения и эффективное использование памяти
- Перечисления (enum)