Verschil tussen structuur en eenheid in C

Inhoudsopgave:

Verschil tussen structuur en eenheid in C
Verschil tussen structuur en eenheid in C

Video: Verschil tussen structuur en eenheid in C

Video: Verschil tussen structuur en eenheid in C
Video: Examentraining Economie - Structuur en Conjunctuur 2024, Juli-
Anonim

Belangrijk verschil - Structuur versus Unie in C

Een array is een gegevensstructuur die wordt ondersteund door de C-taal. Een array kan worden gebruikt om gegevenselementen van hetzelfde type op te slaan. Als er een statement als int staat [10]; dan zijn markeringen een array die tien markeringen kan opslaan en dit zijn allemaal gehele getallen. Soms is het nodig om data-elementen 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 noodzakelijk om een methode te hebben om verschillende data-elementen 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.

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 gecomprimeerd tot een enkele eenheid met behulp van een structuur. Het wordt gedefinieerd met het trefwoord 'struct'. In een structuur zijn alle leden ervan op elk moment toegankelijk. Het volgende creëert een afgeleid gegevenstype struct Student.

struct Student {

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 wil zeggen met behulp van de operator lid (.) en structuuraanwijzer (->). De leden zijn toegankelijk via structure_variable_name. naam lid. Als de programmeur toegang wil tot de naam van student 2, dan kan hij de verklaring schrijven als printf(student2.student_namename);

Verwijs naar 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. In het hoofdprogramma worden twee variabelen van het structuurtype gedeclareerd. Ze heten student1 en student2. De id van student1 wordt toegewezen met waarde 1 met behulp van de operator member als student1.student_id=1. De naam "Ann" is een string. Daarom wordt het gekopieerd naar het lid student_name met behulp van de tekenreekskopieerfunctie strcpy. De id en naam worden op dezelfde manier aan student2 toegewezen. Ten slotte worden die waarden afgedrukt met de operator member.

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 (elk één byte voor een teken). Het totaal van 24 bytes is de som van de geheugengrootte die nodig is voor de structuur.

Wat is Union in C?

Een unie is een door de gebruiker gedefinieerd gegevenstype in C. Het helpt om verschillende gegevenstypes op dezelfde geheugenlocatie op te slaan. Een boek kan eigenschappen hebben zoals boeknaam, prijs enz. In plaats van variabelen voor elk van hen te maken, kan een unie worden gebruikt om alle verschillende gegevenstypen in één eenheid te comprimeren met behulp van een unie. Het wordt gedefinieerd met het trefwoord 'union'. Het volgende creëert een afgeleid data union Book.

unionBook{

char naam[20];

dubbele prijs;

};

Voor de bovenstaande unie kunnen variabelen als volgt worden gedeclareerd.

union Boek boek1, boek2;

Er zijn twee manieren om toegang te krijgen tot de leden van de vakbond. Dat wil zeggen met behulp van de operator lid (.) en structuuraanwijzer (->). De leden zijn toegankelijk via union_variable_name. naam lid. Als de programmeur toegang wil tot de naam van boek1, dan kan hij de verklaring schrijven als printf(book1.name);

Verwijs naar het onderstaande programma met een vakbond.

Verschil tussen structuur en unie in C_Figuur 02
Verschil tussen structuur en unie in C_Figuur 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 kan slechts één van zijn leden tegelijk worden benaderd en alle andere leden hebben afvalwaarden. De waarde van id wordt niet correct afgedrukt, maar de prijswaarde wordt correct afgedrukt.

Sleutelverschil tussen structuur en unie in C
Sleutelverschil tussen structuur en unie in C

Figuur 03: Aangepast C-programma met union

Volgens het bovenstaande programma is Book een vakbond. Book1 en book2 zijn variabelen van het type unie. Eerst wordt de waarde voor boek1 naam toegewezen en afgedrukt. Vervolgens wordt de waarde voor boek2-naam toegewezen en afgedrukt. Alle leden worden correct afgedrukt omdat één lid tegelijk wordt gebruikt. Het geheugen dat nodig is om een vakbond op te slaan, is het geheugen dat nodig is voor het grootste element van de vakbond. 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 datatypes.
  • 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?

Structuur versus Unie in C

Structuur is een door de gebruiker gedefinieerd gegevenstype in C-taal waarmee gegevens van verschillende typen kunnen worden gecombineerd. Union is een door de gebruiker gedefinieerd gegevenstype in C-taal waarmee gegevens van verschillende typen kunnen worden gecombineerd.
Toegankelijkheid
In een structuur zijn alle leden op elk moment toegankelijk. In een vakbond kan slechts één van zijn leden tegelijk worden benaderd en alle andere leden zullen afvalwaarden bevatten.
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 vakbond te definiëren is 'vakbond'.

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 data-elementen 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 unie in C.

Aanbevolen: