Разлика между структура и съюз в С

Ключова разлика - Структура срещу съюз в С
 

Масивът е структурирана информация, поддържана от език C. Масив може да се използва за съхраняване на елементи от същия тип. Ако има изявление като int марки [10]; тогава знаците са масив, който може да съхранява десет марки и всички те са цели числа. Понякога се изисква да съхранявате елементи от данни от различни видове в едно и също място в паметта. Например служителят може да има идентификационен номер на служителя, име, отдел, възраст и т.н. Те са от различни типове данни. Следователно е необходимо да има метод за съхраняване на различни елементи от данни като едно цяло. Структурите и обединенията в C се използват за съхранение на данни от различни типове в едно и също място в паметта. Структурата и обединението са подобни, но главно се различават поради разпределението на паметта. Паметта, необходима за съхраняване на структурна променлива, е сумирането на размера на паметта на всички членове. Паметта, необходима за съхраняване на променлива на обединението, е паметта, необходима за най-големия елемент в обединението. Това е ключовата разлика между структура и съюз в В. Тази статия обсъжда разликата между структура и съюз в С.

СЪДЪРЖАНИЕ

1. Преглед и ключова разлика
2. Какво е структура в С
3. Какво е Съюз в С
4. Прилики между структурата и обединението в С
5. Паралелно сравнение - Структура срещу Съюз в С в таблична форма
6. Резюме

Какво е структура в C?

Структурата е определен от потребителя тип данни в C. Тя помага за комбиниране на елементи от данни от различни типове. Структурата може да представлява записи. Студентът може да има Student_id, Student_name и т.н. Вместо да съхранява всяка променлива поотделно, всички тези различни данни могат да бъдат компактни в едно цяло с помощта на структура. Тя се дефинира с помощта на ключовата дума „struct“. В една структура, всички нейни членове могат да бъдат достъпни по всяко време. Следното създава производна структура на данните Student.

Структура Студент

intstudent_id;

char student_name [20];

;

За горната структура променливите могат да бъдат декларирани, както следва.

структура Студентски студент1, студент2, студент3;

Има два метода за достъп до членовете на структурата. Това е с помощта на оператора-член (.) И структура на указател на структура (->). Членовете могат да бъдат достъпни с помощта на структура_именна_име. име на участник. Ако програмистът иска достъп до името на студента 2, тогава той може да напише изявлението като printf (student2.student_namename);

Вижте по-долу програмата със структура.

Фигура 01: C програма със структури

Според горната програма Студентът е структура. Съдържа student_id и име на студент. Две променливи от структурен тип са декларирани в основната програма. Те се наричат ​​student1 и student2. Идентификаторът на student1 се присвоява със стойност 1, като се използва операторът член като student1.student_id = 1. Името „Ann“ е низ. Следователно, той се копира в члена_именник с помощта на функция за копиране на стринг strcpy. Идентификационният номер и името се присвояват на student2 по подобен начин. И накрая, тези стойности се отпечатват с помощта на оператор-член.

Количеството памет, необходимо за съхраняване на структурна променлива, е сумата от размера на паметта на всички членове. Student_id съдържа 4 байта, а името на студента съдържа 20 байта (по един байт за знак). Общите 24 байта са сумата от размера на паметта, изисквана от структурата.

Какво е Съюзът в С?

Съюзът е определен от потребителя тип данни в C. Той помага да се съхраняват различни типове данни в едно и също място в паметта. Книгата може да има свойства като име на книга, цена и т.н. Вместо да създава променливи за всеки от тях, съюз може да се използва за компактиране на всички различни типове данни в едно устройство с помощта на съюз. Дефинира се с помощта на ключовата дума 'union'. Следното създава производна книга за обединяване на данни.

unionBook

име на чар [20];

двойна цена;

;

За горния съюз променливите могат да бъдат декларирани по следния начин.

съюз книга Book1, book2;

Има два метода за достъп до членовете на съюза. Това е с помощта на оператора-член (.) И структура на указател на структура (->). Достъпът до членовете може да бъде използван с име на union_variable_name. име на участник. Ако програмистът иска достъп до името на book1, тогава той може да напише изявлението като printf (book1.name);

Обърнете се към програмата по-долу със съюз.

Фигура 02: C програма, използваща съюз

Според горната програма Книгата е съюз. Book1 е променлива от тип съюз. Името и цената са присвоени стойности. В съюз, само един от членовете му може да получи достъп наведнъж и всички останали членове ще имат стойности за боклук. Стойността на идентификатора не се отпечатва правилно, но стойността на цената се отпечатва правилно.

Фигура 03: Модифицирана програма C със съюз

Според горната програма Книгата е съюз. Book1 и book2 са променливи тип съюз. Първо се задава стойността за name book1 и тя се отпечатва. Тогава се задава стойността за name book2 и тя се отпечатва. Всички членове се отпечатват правилно, защото се използва един член в даден момент. Паметта, необходима за съхраняване на съюз, е паметта, необходима за най-големия елемент на обединението. В горната програма променливата на име е 20 байта. Тя е по-голяма от цената. И така, разпределението на паметта за обединението е 20 байта.

Какви са приликите между структура и съюз в С?

  • И Структурата, и Съюзът в C са дефинирани от потребителя типове данни.
  • Както структура, така и съюз в C могат да се използват за съхранение на различни типове данни в едно и също място на паметта.

Каква е разликата между структура и съюз в С?

Структура срещу Съюз в С

Структурата е дефиниран от потребителя тип на C език, който позволява комбиниране на данни от различни типове заедно. Union е дефиниран от потребителя тип на C език, който позволява комбиниране на данни от различни типове заедно.
 Достъпност
В една структура, всички нейни членове могат да имат достъп по всяко време. В един съюз може да се получи достъп само до един от членовете му наведнъж и всички останали членове да съдържат стойности за боклук.
Разпределение на паметта
Паметта, необходима за съхраняване на структурна променлива, е сумирането на размера на паметта на всички членове. Паметта, необходима за съхраняване на променлива на обединението, е паметта, необходима за най-големия елемент в обединението.
 Ключова дума
Ключовата дума, използвана за дефиниране на структура, е „struct“. Ключовата дума, използвана за дефиниране на съюз, е „съюз“.

резюме - Структура срещу съюз в С

Масив се използва за съхранение на елементи от същия тип. Понякога е необходимо да се съхраняват елементи от данни от различни видове в едно и също място в паметта. C езикът за програмиране осигурява структура и обединение за изпълнение на тази задача. И двете са дефинирани от потребителя типове данни. Паметта, необходима за съхраняване на структурна променлива, е сумирането на размера на паметта на всички членове. Паметта, необходима за съхраняване на променлива на обединението, е паметта, необходима за най-големия елемент в обединението. Това е разликата между структура и съюз в С.

справка:

1. Точка, уроци. „Структури в C.“, Учебни точки, 15 август 2017. Достъпно тук 
2. Точка, уроци. „Съюзи в В.“ , Точки за уроци, 15 август 2017. Достъпно тук