Fő különbség - Struktúra vs Unió C-ben
A tömb egy C nyelv által támogatott adat. Egy tömb használható azonos típusú adatelemek tárolására. Ha van állítás int jelként [10]; akkor a jelölések egy tömb, amely tíz jelet képes tárolni, és mindegyik egész szám. Előfordul, hogy különböző típusú adatelemeket kell tárolni ugyanazon a memóriahelyen. Például egy alkalmazott rendelkezhet munkavállalói azonosítóval, névvel, osztályral, életkorral stb. Különböző típusúak. Ezért szükséges a különféle adatelemek egyetlen egységként történő tárolására szolgáló módszer. A C struktúrákat és uniókat különböző típusú adatelemek ugyanazon memóriahelyen történő tárolására használják. A struktúra és az unió hasonló, de főként a memóriafoglalás miatt különböznek egymástól. A struktúraváltozó tárolásához szükséges memória az összes tag memóriaméretének összegzése. Az unió változó tárolásához szükséges memória az unió legnagyobb eleméhez szükséges memória. Ez a legfontosabb különbség a struktúra és az unió között C-ben. Ez a cikk a struktúra és az unió közötti különbséget tárgyalja C-ben.
TARTALOM
1. Áttekintés és fő különbség
2. Mi a szerkezet C-ben
3. Mi az Unió C-ben
4. A szerkezet és az Unió közötti hasonlóságok C-ben
5. Egymás melletti összehasonlítás - Struktúra vs Unió C-ben táblázatos formában
6. Összefoglalás
Mi a szerkezet C-ben?
A szerkezet egy felhasználó által definiált adattípus a C-ben. Segít a különböző típusú adatelemek kombinálásában. Egy szerkezet reprezentálhatja a rekordokat. A tanulónak meg lehet a student_id, a student_name stb. Ahelyett, hogy minden változót külön tárolna, mindezek a különböző adatelemek egy egységgé tömöríthetők egy struktúra segítségével. A 'struct' kulcsszóval határozható meg. Egy struktúrában az összes tagja bármikor hozzáférhető. Az alábbiakban egy származtatott adattípust hozunk létre a Student.
struct Student {
intstudent_id;
char diáknév [20];
};
A fenti struktúra esetében a változókat a következőképpen lehet deklarálni.
strukturált Student student1, student2, student3;
A struktúra tagjainak eléréséhez két módszer létezik. Ez a tag operátor (.) És a struktúra mutató operátor (->) használatával történik. A tagok a szerkezet_változó_név segítségével érhetők el. tag név. Ha a programozó hozzáférni akar a 2. tanuló nevéhez, akkor az állítást printf (hallgató2.tanuló_neve) néven írhatja;
Tekintse meg az alábbi programot felépítéssel.
01. ábra: C program struktúrákkal
A fenti program szerint a Student egy struktúra. Ez tartalmazza a student_id és a student_name neveket. Két szerkezettípusú változót deklarálunk a fő programban. Student1-nek és student2-nek hívják őket. A student1 azonosítója 1 értékkel van rendelve a tag operátor segítségével a student1.student_id = 1 néven. Az „Ann” név egy húr. Ezért átmásolja a student_name tagra az strcpy karakterlánc másolási függvény segítségével. Az azonosító és a név hasonló módon kerül hozzárendelésre a student2 számára. Végül ezeket az értékeket a tag operátor segítségével nyomtatjuk ki.
A struktúraváltozó tárolásához szükséges memória mennyisége az összes tag memóriaméretének összege. A student_id 4 bájtot, a student_name pedig 20 bájtot tartalmaz (egy-egy bájt egy karakterhez). Az összesen 24 bájt a memória méretének összege, amelyet a szerkezet megkövetel.
Mi az Unió C-ben?
Az unió egy felhasználó által definiált adattípus C-ben. Segít a különböző adattípusok tárolásában ugyanazon a memóriahelyen. A könyvnek lehetnek olyan tulajdonságai, mint a könyvnév, az ár stb., Ahelyett, hogy mindegyikhez változókat hozna létre, egy unióval fel lehet használni az összes különböző adattípus egyetlen egységbe tömörítését egy unió használatával. Meghatározása az „unió” kulcsszóval történik. A következőkből származtatott adatunió könyv jön létre.
unionBook {
char neve [20];
dupla ár;
};
A fenti unió esetében a változókat a következőképpen lehet deklarálni.
szakszervezeti könyv 1. könyv, 2. könyv;
Kétféle módon lehet elérni az unió tagjait. Ez a tag operátor (.) És a struktúra mutató operátor (->) használatával történik. A tagok az union_változó_név segítségével érhetők el. tag név. Ha a programozó hozzáférni akar a könyv1 nevéhez, akkor az utasításot printf (könyv1.név) néven írhatja;
Hivatkozással olvassa el az alábbi programot.
02. ábra: C program unió használatával
A fenti program szerint a Könyv unió. A book1 egy típusú unió változó. A név és az ár értékekhez van rendelve. A szakszervezetben egyszerre csak az egyik tagja férhet hozzá, és az összes többi tag szemétértékkel rendelkezik. Az id értéke nem megfelelően nyomtatódik, de az ár értéke megfelelően nyomtatódik.
03. ábra: Módosított C program unióval
A fenti program szerint a Book szakszervezet. A book1 és book2 unió típusú változók. Először a book1 név értékét rendeljük hozzá, és kinyomtatjuk. Ezután hozzárendelik a book2 név értékét, és kinyomtatják. Az összes tag nyomtatása helyesen történik, mert egyszerre csak egy tagot használnak. Az unió tárolásához szükséges memória az unió legnagyobb eleméhez szükséges memória. A fenti programban a névváltozó 20 bájt. Nagyobb, mint az ár. Tehát az unió memóriakiosztása 20 bájt.
Milyen hasonlóságok vannak a szerkezet és az Unió között C-ben?
- A Struktúra és az Unió C-ben egyaránt felhasználó által definiált adattípusok.
- A Structure és az Union in C egyaránt használható különböző adattípusok tárolására ugyanazon a memóriahelyen.
Mi a különbség a szerkezet és az Unió között C-ben?
Különböző cikk a táblázat előtt
Struktúra vs Unió C-ben |
|
A Structure egy felhasználó által definiált adattípus C nyelven, amely lehetővé teszi a különböző típusú adatok kombinálását. | Az Union egy felhasználó által definiált adattípus C nyelven, amely lehetővé teszi a különböző típusú adatok kombinálását. |
Megközelíthetőség | |
Egy struktúrában minden tagja bármikor elérhető. | Egy szakszervezetben egyszerre csak az egyik tagja férhet hozzá, és az összes többi tag tartalmaz szemétértékeket. |
Memória allokáció | |
A struktúraváltozó tárolásához szükséges memória az összes tag memóriaméretének összegzése. | Az unió változó tárolásához szükséges memória az unió legnagyobb eleméhez szükséges memória. |
Kulcsszó | |
A struktúra meghatározásához használt kulcsszó a 'struct'. | Az unió meghatározásához használt kulcsszó az „unió”. |
Összegzés - Struktúra vs Unió C-ben
Tömböt használnak az azonos típusú adatelemek tárolására. Néha szükség van különböző típusú adatelemek tárolására ugyanazon a memóriahelyen. A C programozási nyelv struktúrát és egyesülést biztosít ennek a feladatnak a végrehajtásához. Mindkettő a felhasználó által definiált adattípus. A struktúraváltozó tárolásához szükséges memória az összes tag memóriaméretének összegzése. Az unió változó tárolásához szükséges memória az unió legnagyobb eleméhez szükséges memória. Ez a különbség a szerkezet és az egyesülés között C-ben.