Разница между структурой и объединением в C (с таблицей)

Оглавление:

Anonim

В языке программирования 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

  1. Структура - это определяемый пользователем тип данных, в котором хранятся различные типы данных. Кроме того, он используется для представления набора значений типов данных. Если программисту нужно определить объединение, тогда программист должен использовать ключевое слово struct. В то время как для объединения необходимо ключевое слово union для определения.
  2. В структуре все типы данных хранятся в разных местах, и вы можете получить доступ к нескольким элементам данных. В то время как в union все элементы данных совместно используют одну и ту же ячейку памяти, и только один элемент данных может быть доступен одновременно.
  3. В структуре для инициализации любого члена несколько членов могут быть инициализированы одновременно, но в случае объединения может быть инициализирован только первый член.
  4. Общий размер структуры зависит от суммы размеров всех элементов данных, тогда как в случае объединения размер равен члену данных, размер которого является наибольшим среди всех.
  5. В структуре каждый тип данных имеет разное распределение памяти, тогда как в объединении для члена данных самого большого размера выделяется одна память.

Вывод

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

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

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

Разница между структурой и объединением в C (с таблицей)