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
#includestruct 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
#includeunion 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.