Різниця між структурою та об'єднанням

Зміст:

Anonim

Що таке структура?

Структура - це визначений користувачем тип даних мовою програмування С, який поєднує в собі логічно пов'язані елементи даних різних типів даних разом.

Всі елементи структури зберігаються у суміжних місцях пам'яті. Змінна типу структури може зберігати більше одного елемента даних різних типів даних під одним іменем.

У цьому підручнику ви дізнаєтесь:

  • Що таке структура?
  • Що таке Союз
  • Синтаксис структури оголошення
  • Приклад структури в програмуванні на Сі
  • Синтаксис Декларування Союзу
  • Приклад програмування Union in C
  • Структура проти Союз
  • Переваги будови
  • Переваги союзу
  • Недоліки структури
  • Недоліки союзу

Що таке Союз

Union - це визначений користувачем тип даних, як і структура. Union об'єднує об'єкти різних типів і розмірів разом. Змінна об'єднання виділяє простір пам'яті, рівний простору для зберігання найбільшої змінної об'єднання. Це дозволяє об'єктам різних типів спільно використовувати одне і те ж місце.

Синтаксис структури оголошення

struct [name of the structure]{type member1;type member2;type member3;};

Структура оголошується за допомогою ключового слова "struct" та назви структури. Номер 1, номер 2, номер 3 - це окремі члени структури. Частина тіла закінчується крапкою з комою (;).

Приклад структури в програмуванні на Сі

#include struct student {char name[60];int roll_no;float marks;} sdt;int main() {printf("Enter the following information:\n");printf("Enter student name: ");fgets(sdt.name, sizeof(sdt.name), stdin);printf("Enter student roll number: ");scanf("%d", & sdt. roll_no);printf("Enter students marks: ");scanf("%f", & sdt.marks);printf("The information you have entered is: \n");printf("Student name: ");printf("%s", sdt.name);printf("Student roll number: %d\n", sdt. roll_no);printf("Student marks: %.1f\n", sdt.marks);return 0;}

У вищезазначеній програмі створено структуру під назвою студент. Ця структура має три елементи даних: 1) ім'я (рядок), 2) roll_no (ціле число) та 3) позначки (плаваюча).

Після цього створюється структурна змінна sdt для зберігання інформації про студента та відображення її на екрані комп'ютера.

Вихід:

Введіть таку інформацію:

Введіть ім'я студента: Джеймс

Введіть номер студентського списку: 21

Введіть оцінки студентів: 67

Введена інформація:

Ім'я студента: Джон

Номер студентського списку: 21

Оцінки студентів: 67,0

Синтаксис Декларування Союзу

union [name of union]{type member1;type member2;type member3;};

Union оголошується за допомогою ключового слова "union" та назви union. Номер 1, номер 2, номер 3 є окремими членами профспілки. Частина тіла закінчується крапкою з комою (;).

Приклад програмування Union in C

#include union item{int x;float y;char ch;};int main( ){union item it;it.x = 12;it.y = 20.2;it.ch = 'a';printf("%d\n", it.x);printf("%f\n", it.y);printf("%c\n", it.ch);return 0;}

Вихід:

1101109601

20.199892

a

У наведеній вище програмі ви можете бачити, що значення x та y пошкоджуються. Тільки змінна ch друкує очікуваний результат. Це тому, що, об'єднавшись, розташування пам'яті спільно використовується між усіма типами даних членів.

Отже, єдиний елемент даних, значення якого в даний час зберігається, займе простір пам'яті. Значення змінної ch нарешті було збережено, тому значення решти змінних втрачено.

Структура проти Союз

Ось важлива різниця між структурою та об’єднанням:

Структура Союз
Ви можете використовувати ключове слово struct для визначення структури. Ви можете використовувати ключове слово union для визначення об'єднання.
Кожному члену в структурі присвоюється унікальне місце в пам'яті. У поєднанні розташування пам'яті спільно використовується усіма учасниками даних.
Зміна значення одного члена даних не вплине на інші члени даних у структурі. Зміна значення одного члена даних змінить значення інших членів даних в об'єднанні.
Це дозволяє ініціалізувати кілька членів одночасно. Це дозволяє ініціалізувати лише першого члена спілки.
Загальний розмір структури - це сума розміру кожного члена даних. Загальний розмір об'єднання - це розмір найбільшого члена даних.
В основному він використовується для зберігання різних типів даних. В основному він використовується для зберігання одного з багатьох доступних типів даних.
Він займає місце для кожного члена, записаного у внутрішніх параметрах. Він займає місце для члена, що має найбільший розмір, записаний у внутрішніх параметрах.
Ви можете одночасно отримати будь-якого учасника. Ви можете отримати доступ до одного члена спілки за раз.
Він підтримує гнучкий масив. Він не підтримує гнучкий масив.

Переваги будови

Ось плюси / переваги використання структури:

  • Структури збирають більше, ніж один фрагмент даних про одну і ту ж тему, в одному місці.
  • Це корисно, коли ви хочете зібрати дані подібних типів даних та параметрів, таких як ім’я, прізвище тощо.
  • Це дуже легко підтримувати, оскільки ми можемо представити весь запис, використовуючи одне ім’я.
  • За структурою ми можемо передавати повний набір записів будь-якій функції за допомогою одного параметра.
  • Ви можете використовувати масив структури, щоб зберігати більше записів подібних типів.

Переваги союзу

Ось плюси / переваги використання об’єднання:

  • Він займає менше пам'яті порівняно зі структурою.
  • Коли ви використовуєте об'єднання, безпосередньо можна отримати доступ лише до останньої змінної.
  • Union використовується, коли вам потрібно використовувати одне і те ж місце в пам'яті для двох або більше членів даних.
  • Це дозволяє зберігати дані лише одного члена даних.
  • Його виділений простір дорівнює максимальному розміру члена даних.

Недоліки структури

Ось мінуси / недоліки використання структури:

  • Якщо складність ІТ-проекту виходить за межі, керувати ним стає важко.
  • Зміна однієї структури даних у коді вимагає змін у багатьох інших місцях. Тому зміни стає важко відстежувати.
  • Структура є повільнішою, оскільки вимагає місця для зберігання всіх даних.
  • Ви можете отримати будь-якого члена за раз у структурі, тоді як ви можете отримати доступ до одного члена в об’єднанні.
  • Структура займає простір для кожного члена, записаного у внутрішніх параметрах, тоді як об'єднання займає простір для члена, що має найбільший розмір, записаний у внутрішніх параметрах.
  • Структура підтримує гнучкий масив. Union не підтримує гнучкий масив.

Недоліки союзу

Ось мінуси / недоліки використання об’єднання:

  • Одночасно можна використовувати лише одного члена профспілки.
  • Усі змінні об'єднання не можуть бути ініціалізовані або використані з різними значеннями одночасно.
  • Союз виділяє один загальний простір для всіх своїх членів.

ОСНОВНІ ВІДМІННОСТІ:

  • Кожному члену в структурі присвоюється унікальне розташування пам'яті, тоді як в об'єднанні місце пам'яті спільне для всіх членів даних.
  • Зміна значення одного члена даних не вплине на інші члени даних у структурі, тоді як зміна значення одного члена даних змінить значення інших членів даних у об'єднанні.
  • Структура в основному використовується для зберігання різних типів даних, тоді як об'єднання в основному використовується для зберігання одного з багатьох типів даних.
  • У структурі ви можете отримати будь-якого члена за раз, з іншого боку, в об'єднанні, ви можете отримати доступ до одного члена за раз.
  • Структура підтримує гнучкий масив, тоді як об'єднання не підтримує гнучкий масив.