В языке программирования C есть предопределенные типы данных и типы данных, определяемые пользователем. Примерами пользовательских типов данных являются структуры и объединения в C.
В структурах и объединениях пользователи могут определять различные типы данных и функции-члены для доступа ко всем переменным. Хотя они оба используют один и тот же синтаксис, между ними существует огромная разница.
Структура против Союза в C
В структуре общий размер памяти равен сумме размеров всех типов данных в структуре. В то время как в Union общий размер пространства памяти равен размеру наибольшего типа данных в объединении. Это одно из самых важных различий между структурой и союзом.
Например
Структурная работа
{
Int деньги;
Название символа;
} s1;
В этом случае размер памяти для выделенной структуры будет 2 + 1 = 3 байта, так как размер целого числа составляет 1 байт, а размер символа - 2 байта. Следовательно, размер будет 3 байта.
`профсоюзная работа
{
Int деньги;
Название символа;
} s1;
В объединении размер выделенной памяти будет 2 байта, поскольку максимальный размер типа данных в объединении составляет 2 байта, то есть символьный тип данных.
Таблица сравнения между структурой и объединением в C (в табличной форме)
Параметр для сравнения | Союз | Структура |
---|---|---|
Определение ключевого слова | Использует ключевое слово «объединение». | Использует ключевое слово «структура» |
Объем памяти | Размер равен элементу наибольшего размера. | Размер равен сумме всех элементов конструкции |
Общая память | Вся память элемента используется совместно с разными элементами. | Элементы структуры не имеют общей памяти. |
Доступ к элементу | Одновременно доступен только один элемент | Доступ к любому количеству элементов можно получить в любой момент |
Пример | Пример объединения {Типы данных и члены} obj; | struct example {Типы данных и члены} obj; |
Что такое структура в C?
Структура - это определяемая пользователем группа данных, представляющая собой набор различных типов данных. Следующий пример будет весьма полезным. Предположим, что программисту нужно сохранить некоторые данные, такие как ученик, имя, класс, адрес и многие другие.
Что ж, есть два способа подойти к этой проблеме: один - создать разные типы данных, а другой - создать структуру.
В этом случае структура будет выгодна, поскольку, если вы создаете переменные отдельно, вам нужно создать много переменных для каждого ученика, и это будет действительно разрушительно. Вместо этого структуру можно использовать снова и снова.
Структуру можно создать с помощью ключевого слова struct.
Например
Struct structure_name {
Тип данных datatype_name;
Тип данных datatype_name;
Тип данных datatype_name;
Тип данных datatype_name;
…
};
Если вы хотите получить доступ к любому из элементов данных, вам необходимо создать объект, например
Struct имя_структуры имя_объекта;
С синтаксисом object_name.datatype_name вы сможете получить доступ к типу данных в структуре.
Что такое Союз в C?
Подобно объединению структур - еще один определяемый пользователем тип данных в языке программирования C. Каждый раз, когда программист определяет объединение, создается пользовательский тип данных, но нет места в памяти.
Что ж, если вы хотите выделить память, тогда нужно создать переменные в объединении. Union имеет свойство, которое не позволяет программисту иметь доступ к более чем одному типу данных.
Следовательно, вместе программист может получить доступ к одному элементу данных за раз. Возьмем небольшой пример.
Union union_name
{
Data_type Datatype_name;
Data_type Datatype_name;
Data_type Datatype_name;
Data_type Datatype_name;
};
В приведенном выше примере отображается базовая структура объединения. Так программист создает союз. Если вы хотите получить доступ к любому типу данных в объединении, вам нужно его использовать. Оператор аналогичен структуре.
Union union_name objname; С помощью приведенного выше оператора вы можете создать объект, который поможет вам получить доступ к любому элементу данных в объединении с помощью оператора точки.
Основные различия между структурой и объединением в C
- Структура - это определяемый пользователем тип данных, в котором хранятся различные типы данных. Кроме того, он используется для представления набора значений типов данных. Если программисту нужно определить объединение, тогда программист должен использовать ключевое слово struct. В то время как для объединения необходимо ключевое слово union для определения.
- В структуре все типы данных хранятся в разных местах, и вы можете получить доступ к нескольким элементам данных. В то время как в union все элементы данных совместно используют одну и ту же ячейку памяти, и только один элемент данных может быть доступен одновременно.
- В структуре для инициализации любого члена несколько членов могут быть инициализированы одновременно, но в случае объединения может быть инициализирован только первый член.
- Общий размер структуры зависит от суммы размеров всех элементов данных, тогда как в случае объединения размер равен члену данных, размер которого является наибольшим среди всех.
- В структуре каждый тип данных имеет разное распределение памяти, тогда как в объединении для члена данных самого большого размера выделяется одна память.
Вывод
Структура и объединения - это определяемые пользователем типы данных, используемые в программировании на языке C. Структура и союзы используют одну и ту же концепцию хранения нескольких типов данных. И все типы данных в структуре и объединении доступны с помощью оператора точки.
Структуры и объединения различаются только размером и распределением памяти, но их использование одинаково. Оба они увеличивают возможность повторного использования кода и многое другое. Если вы хотите сохранить много значений для одного типа данных, вам пригодятся структура и объединение.
Базовый вариант использования структуры и объединения - когда вам нужно сохранить запись исполнителя. Структура или объединение будут хранить все данные в структуре или объединении, а затем вы можете хранить или получать доступ к данным. Основное отличие заключается в распределении памяти и доступе к типу данных.