Разлика између структуре и уније

Преглед садржаја:

Anonim

Шта је структура?

Структура је кориснички дефинисани тип података у програмском језику Ц који комбинује логички повезане ставке података различитих типова података заједно.

Сви елементи структуре чувају се на непрекидним меморијским локацијама. Променљива типа структуре може под једним именом похранити више ставки података различитих типова података.

У овом упутству ћете научити:

  • Шта је структура?
  • Шта је Унион
  • Синтакса декларисања структуре
  • Пример структуре у програмирању на језику Ц.
  • Синтакса проглашења уније
  • Пример програмирања Уније у Ц
  • Структура против унија
  • Предности структуре
  • Предности синдиката
  • Недостаци структуре
  • Мане синдиката

Шта је Унион

Унион је кориснички дефинисани тип података, баш као и структура. Унион комбинује предмете различитих врста и величина заједно. Променљива унија додељује меморијски простор једнак простору за чување највеће променљиве уније. Омогућава различитим врстама објеката да деле исту локацију.

Синтакса декларисања структуре

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

Структура се декларише помоћу кључне речи „струцт“ и имена структуре. Број 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) ролл_но (цео број) и 3) ознаке (флоат).

Након тога креира се структурна променљива сдт за чување информација о студентима и њихово приказивање на екрану рачунара.

Излаз:

Унесите следеће информације:

Унесите име ученика: Јамес

Унесите број студентске листе: 21

Унесите оцене ученика: 67

Подаци које сте унели су:

Име студента: Јохн

Списак ученика: 21

Оцене ученика: 67,0

Синтакса проглашења уније

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

Унија се декларише помоћу кључне речи "унион" и назива уније. Број 1, број 2, број 3 су појединачни чланови синдиката. Део тела завршава се тачком и зарезом (;).

Пример програмирања Уније у Ц

#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

а

У горњем програму можете видети да су вредности к и и оштећене. Само променљива цх исписује очекивани резултат. То је зато што се, заједно, меморијска локација дели између свих типова података чланова.

Стога ће једини члан података чија је вредност тренутно ускладиштена заузети меморијски простор. Вредност променљиве цх је коначно сачувана, па се вредност осталих променљивих губи.

Структура против унија

Ево важне разлике између структуре и синдиката:

Структура унија
За дефинисање структуре можете користити кључну реч струцт. Кључну реч унион можете користити за дефинисање уније.
Сваком члану у структури додељена је јединствена меморијска локација. Заједно, меморијску локацију деле сви чланови података.
Промена вредности једног члана података неће утицати на остале чланове података у структури. Промена вредности једног члана података промениће вредност осталих чланова података у унији.
Омогућава вам иницијализацију неколико чланова одједном. Омогућава вам иницијализацију само првог члана уније.
Укупна величина структуре је збир величине сваког члана података. Укупна величина савеза је величина највећег члана података.
Углавном се користи за чување различитих типова података. Углавном се користи за чување једног од многих доступних типова података.
Заузима простор за сваког члана написаног у унутрашњим параметрима. Заузима простор за члана који има највећу величину записану у унутрашњим параметрима.
Можете да преузмете било ког члана истовремено. Можете приступити по једном члану у синдикату.
Подржава флексибилни низ. Не подржава флексибилни низ.

Предности структуре

Ево предности / користи за коришћење структуре:

  • Структуре на истом месту прикупљају више података о истој теми.
  • Корисно је када желите прикупити податке сличних типова података и параметара као што су име, презиме итд.
  • Врло је једноставно за одржавање, јер целим записом можемо представити једно име.
  • У структури, можемо послати комплетан сет записа било којој функцији користећи један параметар.
  • Можете користити низ структура за чување више записа сличних типова.

Предности синдиката

Ево предности / користи за употребу синдиката:

  • Заузима мање меморије у поређењу са структуром.
  • Када користите унион, само последњој променљивој се може директно приступити.
  • Унион се користи када морате да користите исту меморијску локацију за два или више чланова података.
  • Омогућава вам да држите податке само једног члана података.
  • Његов додељени простор једнак је максималној величини члана података.

Недостаци структуре

Ево недостатака / недостатака за употребу структуре:

  • Ако сложеност ИТ пројекта пређе границу, постаје тешко за управљање.
  • Промена једне структуре података у коду захтева промене на многим другим местима. Стога промене постају тешко пратити.
  • Структура је спорија јер захтева простор за складиштење свих података.
  • У структури можете да преузмете било ког члана истовремено, док истовремено можете приступити по једном члану у синдикату.
  • Структура заузима простор за сваког члана записаног у унутрашњим параметрима, док унија заузима простор за члана који има највећу величину записан у унутрашњим параметрима.
  • Структура подржава флексибилни низ. Унион не подржава флексибилни низ.

Мане синдиката

Ево слабости / недостатака за употребу савеза:

  • Можете користити само једног члана синдиката истовремено.
  • Све унија променљиве не могу се истовремено покретати или користити са различитим вредностима.
  • Унија додељује један заједнички простор за складиштење за све своје чланове.

КЉУЧНЕ РАЗЛИКЕ:

  • Сваком члану у структури додељује се јединствена меморијска локација, док у меморији меморијску локацију деле сви чланови података.
  • Промена вредности једног члана података неће утицати на остале чланове података у структури, док ће промена вредности једног члана података променити вредност осталих чланова података у унији.
  • Структура се углавном користи за чување различитих типова података, док се унија углавном користи за складиштење једног од многих типова података.
  • У структури можете да преузмете било ког члана истовремено, с друге стране у унији, можете приступити по једном члану.
  • Структура подржава флексибилни низ док унија не подржава флексибилни низ.