A struktúra és az Unió közötti különbség

Tartalomjegyzék:

Anonim

Mi a szerkezet?

A Structure egy felhasználó által definiált adattípus C programozási nyelven, amely egyesíti a különböző adattípusok logikailag kapcsolódó adatait.

Az összes szerkezeti elem összefüggő memóriahelyeken van tárolva. A Struktúra típusú változó egy név alatt több, különböző adattípusú adatot tárolhat.

Ebben az oktatóanyagban megtudhatja:

  • Mi a szerkezet?
  • Mi az Unió
  • A szerkezet deklarálásának szintaxisa
  • Példa a C programozás felépítésére
  • Az Unió deklarálásának szintaxisa
  • Példa az unióra a C programozásban
  • Szerkezet Vs. Unió
  • A szerkezet előnyei
  • Az unió előnyei
  • A szerkezet hátrányai
  • Az unió hátrányai

Mi az Unió

Az Union egy felhasználó által definiált adattípus, akárcsak egy struktúra. A Union különböző típusú és méretű tárgyakat kombinál. Az unió változó a memóriaterületet az unió legnagyobb változójának tárolásához szükséges területtel egyenlően osztja ki. Lehetővé teszi, hogy a különböző típusú objektumok ugyanazon a helyen helyezkedjenek el.

A szerkezet deklarálásának szintaxisa

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

A struktúra deklarálása a "struct" kulcsszóval és a struktúra nevével történik. Az 1., a 2., a 3. szám a szerkezet egyes tagjai. A testrész pontosvesszővel (;) végződik.

Példa a C programozás felépítésére

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

A fenti programban létrejön egy hallgató nevű struktúra. Ennek a struktúrának három adattagja van: 1) név (karakterlánc), 2) roll_no (egész szám) és 3) jelölés (float).

Ezt követően létrehozzák az sdt szerkezeti változót, amely tárolja a hallgatói információkat és megjeleníti azokat a számítógép képernyőjén.

Kimenet:

Írja be a következő információkat:

Írja be a hallgató nevét: James

Adja meg a hallgatói tekercs számát: 21

Írja be a hallgatói jegyeket: 67

A megadott információ:

Tanuló neve: John

Tanulói tekercs száma: 21

Tanulói pontszám: 67,0

Az Unió deklarálásának szintaxisa

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

Az uniót az "unió" kulcsszóval és az unió nevével deklarálják. Az 1., 2., 3. szám a szakszervezet egyes tagjai. A testrész pontosvesszővel (;) végződik.

Példa az unióra a C programozásban

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

Kimenet:

1101109601

1998.1992

a

A fenti programban láthatja, hogy az x és y értékei megsérülnek. Csak a változó ch nyomtatja ki a várt eredményt. Ez azért van, mert az unióban a memória helye meg van osztva az összes tag adattípus között.

Ezért az egyetlen adattag, amelynek értéke jelenleg tárolva, elfoglalja a memóriaterületet. A ch változó értéke végül tárolásra került, így a többi változó értéke elvész.

Szerkezet Vs. Unió

Itt van a fontos különbség a szerkezet és az egyesülés között:

Szerkezet Unió
Struktúra kulcsszóval definiálhat egy struktúrát. Az unió kulcsszavával meghatározhatja az uniót.
A struktúrán belül minden taghoz egyedi memóriahely tartozik. Az unióban egy memóriahelyet megosztanak az összes adattag.
Egy adattag értékének megváltoztatása a struktúrában nem érinti a többi adattagot. Egy adattag értékének megváltoztatása megváltoztatja az unió többi adattagjának értékét.
Ez lehetővé teszi, hogy egyszerre több tagot inicializáljon. Ez lehetővé teszi, hogy csak az unió első tagját inicializálja.
A struktúra teljes mérete minden adattag méretének összege. Az unió teljes mérete megegyezik a legnagyobb adattag méretével.
Elsősorban különféle adattípusok tárolására használják. Elsősorban a sok rendelkezésre álló adattípus egyikének tárolására szolgál.
Helyet foglal el a belső paraméterekbe írt minden egyes tag számára. Helyet foglal el egy olyan tag számára, amelynek a legnagyobb mérete belső paraméterekkel van megírva.
Egyszerre tetszőleges tagot lehívhat. Az unióban egyszerre csak egy taghoz lehet hozzáférni.
Támogatja a rugalmas tömböt. Nem támogatja a rugalmas tömböt.

A szerkezet előnyei

A struktúra használatának előnyei / előnyei:

  • A struktúrák egynél több adatot gyűjtenek ugyanazon témáról ugyanazon a helyen.
  • Hasznos, ha hasonló adattípusok és paraméterek, például keresztnév, vezetéknév stb. Adatait kívánja összegyűjteni.
  • Nagyon könnyű karbantartani, mivel a teljes rekordot egyetlen név használatával tudjuk képviselni.
  • A felépítésben a teljes rekordkészletet egyetlen funkcióval továbbíthatjuk bármely funkcióhoz.
  • Egy tömb struktúrával több rekordot tárolhat hasonló típusúakkal.

Az unió előnyei

Itt vannak az unió használatának előnyei / előnyei:

  • Kevesebb memóriát foglal el a struktúrához képest.
  • Az unió használatakor csak az utolsó változó érhető el közvetlenül.
  • Az Unió akkor használható, ha ugyanazt a memóriahelyet kell használnia két vagy több adattag számára.
  • Ez lehetővé teszi, hogy csak egy adattag adatait tárolja.
  • A lefoglalt hely megegyezik az adattag maximális méretével.

A szerkezet hátrányai

Íme a struktúra használatának hátrányai / hátrányai:

  • Ha az informatikai projekt bonyolultsága meghaladja a határt, akkor nehezen kezelhető.
  • Egy kód egy adatstruktúrájának megváltoztatása sok más helyen is változtatásokat tesz szükségessé. Ezért a változások nehezen követhetők.
  • A felépítés lassabb, mert tárhelyet igényel az összes adat számára.
  • Bármely tagot be lehet szerezni a struktúrában, míg az unióban egyszerre csak egy tagot lehet elérni.
  • A struktúra helyet foglal minden belső paraméterbe írt tag számára, míg az unió helyet foglal egy olyan tag számára, amelynek belső paraméterekben a legnagyobb a mérete.
  • A szerkezet támogatja a rugalmas tömböt. Az Unió nem támogatja a rugalmas tömböt.

Az unió hátrányai

Itt vannak hátrányok / hátrányok az unió használatához:

  • Egyszerre csak egy szakszervezeti tagot használhat.
  • Az összes unióváltozót nem lehet inicializálni vagy egyszerre változó értékekkel használni.
  • Az Unió egy közös tárhelyet rendel minden tagjának.

Főbb különbségek:

  • A struktúrán belül minden taghoz egyedi memóriahely tartozik, míg az unióban az összes adattag megosztja a memória helyét.
  • Egy adattag értékének megváltoztatása nem befolyásolja a struktúra többi adattagját, míg egy adattag értékének megváltoztatása az unió többi adattagjának értékét.
  • A struktúrát elsősorban különféle adattípusok tárolására használják, míg az uniót a sok adattípus egyikének tárolására.
  • Szerkezetében egyszerre bármely tagot lehívhatja, másrészt szakszervezetben, egyszerre csak egy taghoz férhet hozzá.
  • A Struktúra támogatja a rugalmas tömböt, míg az unió nem támogatja a rugalmas tömböt.