Rozdiel medzi štruktúrou a úniou

Obsah:

Anonim

Čo je to Štruktúra?

Štruktúra je používateľom definovaný dátový typ v programovacom jazyku C, ktorý kombinuje logicky súvisiace dátové položky rôznych dátových typov dohromady.

Všetky prvky štruktúry sú uložené na susedných pamäťových miestach. Premenná typu štruktúra môže pod jedným názvom uložiť viac ako jednu dátovú položku s rôznymi typmi údajov.

V tomto návode sa dozviete:

  • Čo je to Štruktúra?
  • Čo je to Únia
  • Syntax deklarovanej štruktúry
  • Príklad štruktúry v C programovaní
  • Syntax vyhlásenia únie
  • Príklad únie v programovaní C.
  • Štruktúra vs. Únie
  • Výhody štruktúry
  • Výhody zväzu
  • Nevýhody štruktúry
  • Nevýhody únie

Čo je to Únia

Union je používateľom definovaný dátový typ, rovnako ako štruktúra. Union kombinuje objekty rôznych typov a veľkostí. Zariaďovacia premenná alokuje pamäťový priestor rovný medzere, aby uchovala najväčšiu premennú zjednotenia. Umožňuje rôznym typom objektov zdieľať rovnaké umiestnenie.

Syntax deklarovanej štruktúry

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

Štruktúra sa deklaruje pomocou kľúčového slova „struct“ a názvu štruktúry. Číslo 1, číslo 2, číslo 3 sú jednotliví členovia štruktúry. Časť tela je ukončená bodkočiarkou (;).

Príklad štruktúry v C programovaní

#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;}

Vo vyššie uvedenom programe je vytvorená štruktúra s názvom študent. Táto štruktúra má troch dátových členov: 1) meno (reťazec), 2) roll_no (celé číslo) a 3) značky (float).

Potom sa vytvorí štruktúrna premenná sdt na ukladanie informácií o študentoch a ich zobrazovanie na obrazovke počítača.

Výkon:

Zadajte nasledujúce informácie:

Zadajte meno študenta: James

Zadajte číslo role študenta: 21

Zadajte známky študentov: 67

Informácie, ktoré ste zadali, sú:

Meno študenta: John

Číslo role študenta: 21

Známky študentov: 67,0

Syntax vyhlásenia únie

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

Únia sa deklaruje pomocou kľúčového slova a názvu únie. Číslo 1, číslo 2, číslo 3 sú jednotliví členovia zväzu. Časť tela je ukončená bodkočiarkou (;).

Príklad únie v programovaní 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;}

Výkon:

1101109601

20.199892

a

Vo vyššie uvedenom programe vidíte, že hodnoty x a y sa poškodia. Iba premenná ch vytlačí očakávaný výsledok. Je to preto, lebo v jednote je umiestnenie pamäte zdieľané medzi všetkými typmi údajov člena.

Jediný údajový člen, ktorého hodnota je momentálne uložená, teda zaberie miesto v pamäti. Hodnota premennej ch bola uložená nakoniec, takže hodnota ostatných premenných je stratená.

Štruktúra vs. Únie

Tu je dôležitý rozdiel medzi štruktúrou a odborom:

Štruktúra Únie
Na definovanie štruktúry môžete použiť kľúčové slovo struct. Na definovanie únie môžete použiť kľúčové slovo únie.
Každému členovi v rámci štruktúry je priradené jedinečné miesto v pamäti. V jednote je miesto v pamäti zdieľané všetkými údajovými členmi.
Zmena hodnoty jedného dátového člena nebude mať vplyv na ostatné dátové členy v štruktúre. Zmenou hodnoty jedného dátového člena sa zmení hodnota ostatných dátových členov v únii.
Umožňuje vám inicializovať niekoľko členov naraz. Umožňuje vám inicializovať iba prvého člena únie.
Celková veľkosť štruktúry je súčtom veľkosti každého údajového člena. Celková veľkosť únie je veľkosťou najväčšieho dátového člena.
Používa sa hlavne na ukladanie rôznych typov údajov. Používa sa hlavne na ukladanie jedného z mnohých typov údajov, ktoré sú k dispozícii.
Zaberá priestor pre každého člena napísaného vo vnútorných parametroch. Zaberá miesto pre člena, ktorý má najväčšiu veľkosť zapísanú vo vnútorných parametroch.
Môžete získať ľubovoľného člena naraz. V rámci únie môžete mať prístup po jednom členovi.
Podporuje flexibilné pole. Nepodporuje flexibilné pole.

Výhody štruktúry

Tu sú výhody a výhody použitia štruktúry:

  • Štruktúry zhromažďujú viac ako jeden údaj o rovnakom predmete spolu na rovnakom mieste.
  • Je užitočné, keď chcete zhromažďovať údaje podobných dátových typov a parametrov, ako je meno, priezvisko atď.
  • Je veľmi ľahké sa udržiavať, pretože môžeme reprezentovať celý záznam pomocou jedného názvu.
  • V štruktúre môžeme odovzdať kompletnú sadu záznamov akejkoľvek funkcii pomocou jediného parametra.
  • Na uloženie viacerých záznamov s podobnými typmi môžete použiť pole štruktúry.

Výhody zväzu

Tu sú výhody a výhody používania únie:

  • V porovnaní so štruktúrou zaberá menej pamäte.
  • Ak použijete zjednotenie, je možné priamo pristupovať iba k poslednej premennej.
  • Spojenie sa používa, keď musíte použiť to isté miesto v pamäti pre dvoch alebo viacerých dátových členov.
  • Umožňuje vám uchovávať údaje iba jedného dátového člena.
  • Jeho pridelený priestor sa rovná maximálnej veľkosti dátového člena.

Nevýhody štruktúry

Tu sú nevýhody / nevýhody použitia štruktúry:

  • Ak zložitosť IT projektu presiahne limit, je ťažké ho zvládnuť.
  • Zmena jednej dátovej štruktúry v kóde si vyžaduje zmeny na mnohých ďalších miestach. Preto je ťažké sledovať zmeny.
  • Štruktúra je pomalšia, pretože vyžaduje úložný priestor pre všetky dáta.
  • Môžete získať ľubovoľného člena v štruktúre, zatiaľ čo v únii máte prístup po jednom členovi.
  • Štruktúra zaberá priestor pre každého člena zapísaného vo vnútorných parametroch, zatiaľ čo spojenie zaberá priestor pre člena, ktorý má najväčšiu veľkosť napísanú vo vnútorných parametroch.
  • Štruktúra podporuje flexibilné pole. Únia nepodporuje flexibilné pole.

Nevýhody únie

Tu sú nevýhody / nevýhody používania únie:

  • Naraz môžete použiť iba jedného člena únie.
  • Všetky zjednocujúce premenné nemožno inicializovať alebo použiť s rôznymi hodnotami súčasne.
  • Únia prideľuje všetkým svojim členom jeden spoločný úložný priestor.

KĽÚČOVÉ ROZDIELY:

  • Každému členovi v štruktúre je priradené jedinečné miesto v pamäti, zatiaľ čo v zjednotení je miesto v pamäti zdieľané všetkými dátovými členmi.
  • Zmena hodnoty jedného dátového člena nebude mať vplyv na ostatné dátové členy v štruktúre, zatiaľ čo zmena hodnoty jedného dátového člena zmení hodnotu ostatných dátových členov v únii.
  • Štruktúra sa používa hlavne na ukladanie rôznych dátových typov, zatiaľ čo spojenie sa používa hlavne na ukladanie jedného z mnohých dátových typov.
  • V štruktúre môžete načítať ľubovoľných členov naraz, na druhej strane v odboroch, máte prístup k jednotlivým členom naraz.
  • Štruktúra podporuje flexibilné pole, zatiaľ čo spojenie nepodporuje flexibilné pole.