Verschil Tussen Structuur En Unie In C

Inhoudsopgave:

Verschil Tussen Structuur En Unie In C
Verschil Tussen Structuur En Unie In C

Video: Verschil Tussen Structuur En Unie In C

Video: Verschil Tussen Structuur En Unie In C
Video: Writing 2D Games in C using SDL by Thomas Lively 2024, December
Anonim

Belangrijkste verschil - Structuur versus Unie in C

Een array is een data gestructureerd ondersteund door C-taal. Een array kan worden gebruikt om gegevenselementen van hetzelfde type op te slaan. Als er een statement is als int-markeringen [10]; dan zijn markeringen een array die tien markeringen kan opslaan en ze zijn allemaal gehele getallen. Soms is het vereist gegevenselementen van verschillende typen op dezelfde geheugenlocatie op te slaan. Een werknemer kan bijvoorbeeld een werknemers-ID, naam, afdeling, leeftijd enz. Hebben. Ze zijn van verschillende gegevenstypen. Daarom is het nodig om een methode te hebben om verschillende gegevenselementen als een enkele eenheid op te slaan. Structuren en Unions in C worden gebruikt voor het opslaan van data-elementen van verschillende typen op dezelfde geheugenlocatie. Een structuur en een unie zijn vergelijkbaar, maar ze onderscheiden zich voornamelijk door geheugentoewijzing. Het geheugen dat nodig is om een structuurvariabele op te slaan, is de som van de geheugengrootte van alle leden. Het geheugen dat nodig is om een union-variabele op te slaan, is het geheugen dat nodig is voor het grootste element in de union. Dat is het belangrijkste verschil tussen structuur en unie in C. Dit artikel bespreekt het verschil tussen structuur en unie in C.

INHOUD

1. Overzicht en belangrijkste verschil

2. Wat is structuur in C

3. Wat is eenheid in C

4. Overeenkomsten tussen structuur en eenheid in C

5. Vergelijking zij aan zij - Structuur versus eenheid in C in tabelvorm

6. Samenvatting

Wat is structuur in C?

Een structuur is een door de gebruiker gedefinieerd gegevenstype in C. Het helpt om gegevensitems van verschillende typen te combineren. Een structuur kan records vertegenwoordigen. Een student kan student_id, student_name enz. Hebben. In plaats van elke variabele afzonderlijk op te slaan, kunnen al deze verschillende gegevensitems worden samengepakt tot een enkele eenheid met behulp van een structuur. Het wordt gedefinieerd met het trefwoord 'struct'. In een structuur zijn al zijn leden op elk moment toegankelijk. Het volgende creëert een afgeleid gegevenstype struct Student.

struct leerling {

intstudent_id;

char student_name [20];

};

Voor de bovenstaande structuur kunnen variabelen als volgt worden gedeclareerd.

struct Student student1, student2, student3;

Er zijn twee methoden om toegang te krijgen tot de leden van de structuur. Dat is door de lidoperator (.) En de structuurpointeroperator (->) te gebruiken. De leden zijn toegankelijk via structuur_variabele_naam. lid naam. Als de programmeur toegang wil tot de naam van de student 2, dan kan hij de verklaring schrijven als printf (student2.student_naam);

Raadpleeg het onderstaande programma met een structuur.

Verschil tussen structuur en unie in C
Verschil tussen structuur en unie in C

Figuur 01: C-programma met structuren

Volgens het bovenstaande programma is Student een structuur. Het bevat student_id en student_name. Twee variabelen van het structuurtype worden gedeclareerd in het hoofdprogramma. Ze heten student1 en student2. De id van student1 krijgt de waarde 1 toegewezen met behulp van de operator member als student1.student_id = 1. De naam "Ann" is een string. Daarom wordt het gekopieerd naar het studentnaamlid met de tekenreekskopieerfunctie strcpy. Het ID en de naam worden op dezelfde manier aan student2 toegewezen. Ten slotte worden die waarden afgedrukt met de lidoperator.

De hoeveelheid geheugen die nodig is om een structuurvariabele op te slaan, is de som van de geheugengrootte van alle leden. De student_id bevat 4 bytes en student_name bevat 20 bytes (één byte elk voor een teken). De totale 24 bytes is de som van de geheugengrootte die nodig is voor de structuur.

Wat is Union in C?

Een vereniging is een door de gebruiker gedefinieerd gegevenstype in C. Het helpt om verschillende gegevenstypen op dezelfde geheugenlocatie op te slaan. Een boek kan eigenschappen hebben zoals boeknaam, prijs enz. In plaats van variabelen voor elk ervan te creëren, kan een samenvoeging worden gebruikt om alle verschillende gegevenstypen samen te persen tot een eenheid met behulp van een samenvoeging. Het wordt gedefinieerd met behulp van het sleutelwoord 'unie'. Het volgende creëert een afgeleid gegevensverenigingsboek.

unionBook {

char naam [20];

dubbele prijs;

};

Voor de bovenstaande unie kunnen variabelen als volgt worden gedeclareerd.

vakbond Book book1, book2;

Er zijn twee methoden om toegang te krijgen tot de leden van de vakbond. Dat is door de lidoperator (.) En de structuurpointeroperator (->) te gebruiken. De leden zijn toegankelijk via union_variable_name. lid naam. Als de programmeur toegang wil tot de naam van het boek1, dan kan hij de verklaring schrijven als printf (boek1.naam);

Raadpleeg het onderstaande programma met een vakbond.

Verschil tussen structuur en unie in C Figure 02
Verschil tussen structuur en unie in C Figure 02

Figuur 02: C-programma met Union

Volgens het bovenstaande programma is het Boek een vakbond. De book1 is een variabele van het type union. De naam en prijs zijn toegewezen waarden. In een vakbond is slechts één van de leden tegelijk toegankelijk en alle andere leden hebben afvalwaarden. De waarde van id wordt niet correct afgedrukt, maar de prijswaarde wordt correct afgedrukt.

Belangrijkste verschil tussen structuur en unie in C
Belangrijkste verschil tussen structuur en unie in C

Figuur 03: Gewijzigd C-programma met vakbond

Volgens het bovenstaande programma is Book een vakbond. De book1 en book2 zijn variabelen van het unietype. Eerst wordt de waarde voor naam boek1 toegewezen en deze wordt afgedrukt. Vervolgens wordt de waarde voor book2 name toegewezen en afgedrukt. Alle leden worden correct afgedrukt omdat er één lid tegelijk wordt gebruikt. Het geheugen dat nodig is om een unie op te slaan, is het geheugen dat nodig is voor het grootste element van de unie. In het bovenstaande programma is de naamvariabele 20 bytes. Het is groter dan de prijs. De geheugentoewijzing voor de unie is dus 20 bytes.

Wat zijn de overeenkomsten tussen structuur en unie in C?

  • Zowel Structure als Union in C zijn door de gebruiker gedefinieerde gegevenstypen.
  • Zowel Structure als Union in C kunnen worden gebruikt om verschillende gegevenstypen op dezelfde geheugenlocatie op te slaan.

Wat is het verschil tussen structuur en unie in C?

Diff Artikel Midden voor Tafel

Structuur versus Unie in C

Structuur is een door de gebruiker gedefinieerd datatype in C-taal waarmee gegevens van verschillende typen met elkaar kunnen worden gecombineerd. Union is een door de gebruiker gedefinieerd datatype in C-taal waarmee gegevens van verschillende typen met elkaar kunnen worden gecombineerd.
Toegankelijkheid
In een structuur zijn al zijn leden op elk moment toegankelijk. In een vakbond is slechts één van zijn leden tegelijk toegankelijk en alle andere leden bevatten afvalwaarden.
Geheugentoewijzing
Het geheugen dat nodig is om een structuurvariabele op te slaan, is de som van de geheugengrootte van alle leden. Het geheugen dat nodig is om een union-variabele op te slaan, is het geheugen dat nodig is voor het grootste element in de union.
Trefwoord
Het sleutelwoord dat wordt gebruikt om een structuur te definiëren, is 'struct'. Het sleutelwoord dat wordt gebruikt om een unie te definiëren, is 'unie'.

Samenvatting - Structuur versus Unie in C

Een array wordt gebruikt om de data-elementen van hetzelfde type op te slaan. Soms is het nodig om gegevenselementen van verschillende typen op dezelfde geheugenlocatie op te slaan. C-programmeertaal biedt structuur en unie om deze taak te volbrengen. Beide zijn door de gebruiker gedefinieerde gegevenstypen. Het geheugen dat nodig is om een structuurvariabele op te slaan, is de som van de geheugengrootte van alle leden. Het geheugen dat nodig is om een union-variabele op te slaan, is het geheugen dat nodig is voor het grootste element in de union. Dit is het verschil tussen structuur en vereniging in C.

Aanbevolen: