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

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

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

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

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

Кључна реч 'струцт' користи се за дефинисање структуре различитих типова података под једним именом. На пример, ако желите да креирате базу података о запосленима, мораћете да похраните податке о запосленом, старости, телефону и платама у један ентитет. То се врши помоћу кључне речи 'струцт', која затим компајлеру каже да је декларирана структура.

запослени у структури

име низа;

стринг год;

стринг телефон;

стринг плате;

емп1, емп2;

Овде је 'запослени' назив структуре, а две варијабле 'емп1' и 'емп2' су креиране типа 'запослени'. Завршне заграде морају бити праћене тачком са зарезом (;).

Члановима структуре могу приступити две врсте оператора:

  1. Члан оператора
  2. Оператор показивача структуре

Шта је Унија?

То је посебан тип података који се користи у Ц-у који омогућава кориснику да смешта различите типове података различитих врста у исту меморијску локацију. Синдикат је прилично сличан структури и може се дефинисати заменом кључне речи 'структура' кључном речју 'унија'. Чланови преклапају меморију једни друге у заједници и довољно је велика да може да стане на све њене чланове.

Кад се променљива придружи савезу, преводилац распоређује меморију узимајући у обзир величину највеће меморије, тако да је величина уније једнака величини највећег члана података. Синдикат се може дефинирати с многим члановима, али само један члан садржи вриједност у било којем тренутку времена.

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

синдикални радник

име цхар [32];

инт старост;

плутајућа плата;

;

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

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

1. Кључна реч

Кључна реч 'струцт' користи се за дефинисање структуре док се кључна реч 'унион' користи за дефинисање уније.

2. Додељивање меморије

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

3. Приступ чланова

Синдикат похрањује једну вредност истовремено за све своје чланове који приступају само једном члану. Иако се у структури могу похранити више вриједности, тако да се било којем чланском вриједности може приступити и преузети у било којем тренутку.

4. Величина

Величина структуре једнака је збиру величине свих чланова или више, док је величина уније једнака величини члана највеће величине.

5. Иницијализација

У структури се неколико чланова може иницирати одједном, док је у унији само први члан може бити иницијализиран са вредностом свог типа.

5. Вредност

Структура може да похрањује различите вредности свих чланова и промена вредности једног члана неће имати утицаја на вредности других чланова. Док синдикат чува исту вредност за све своје чланове и промена вредности једног члана утицаће на вредност других.

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

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

Резиме

  • И структура и унија су типови података дефинисани од стране корисника на Ц који су функционално и концептуално исти али су на неки начин сасвим различити..
  •  Обе садрже варијабле различитих врста података, али користе исту синтаксу за декларирање променљивих и приступ члановима. Док је структура дефинисана кључном речју 'струцт', унија је дефинисана кључном речју 'унион'.
  • Сваки члан добија засебну меморијску локацију у структури, док је у заједници укупни меморијски простор еквивалентан члану највеће величине. Сви чланови деле исти меморијски простор у заједници.
  • Сваком члану у било којем низу може се приступити у структури, док се у унији, само тој променљивој може приступити чија је вредност недавно сачувана.