Een array is een gestructureerde gegevens ondersteund door C-taal. Een array kan worden gebruikt om gegevenselementen van hetzelfde type op te slaan. Als er een vermelding is als int-markeringen [10]; dan zijn markeringen een array die tien markeringen kan opslaan en ze zijn allemaal gehele getallen. Soms zijn opslaggegevenselementen van verschillende typen op dezelfde geheugenlocatie vereist. Een medewerker kan bijvoorbeeld een werknemer-ID, naam, afdeling, leeftijd, etc. hebben. Ze hebben verschillende gegevenstypen. Daarom is het noodzakelijk om een methode te hebben om verschillende gegevenselementen op te slaan als een enkele eenheid. Structuren en unies in C worden gebruikt voor het opslaan van gegevenselementen van verschillende typen in dezelfde geheugenlocatie. Een structuur en een unie zijn vergelijkbaar, maar ze onderscheiden zich voornamelijk vanwege geheugentoewijzing. Het geheugen dat nodig is om een structuurvariabele op te slaan, is de optelling van de geheugengrootte van alle leden. Het geheugen dat nodig is om een vakbondsvariabele op te slaan, is het geheugen dat nodig is voor het grootste element in de Unie. Dat is het belangrijkste verschil tussen structuur en unie in C. Dit artikel bespreekt het verschil tussen structuur en eenheid in C.
1. Overzicht en belangrijkste verschil
2. Wat is Structuur in C
3. Wat is Union in C
4. Overeenkomsten tussen structuur en Unie in C
5. Vergelijking zij aan zij - Structuur vs. Unie in C in tabelvorm
6. Samenvatting
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_naam enz. Hebben. In plaats van elke variabele afzonderlijk op te slaan, kunnen al deze verschillende gegevensitems compact worden in een enkele eenheid met behulp van een structuur. Het wordt gedefinieerd met het sleutelwoord 'struct'. In een structuur kunnen alle leden op elk moment worden benaderd. De volgende creëert een afgeleid gegevenstype struct Student.
struct Student
intstudent_id;
char student-naam [20];
;
Voor de structuur hierboven 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 lid-operator (.) En de operator van de structuurpijl (->) te gebruiken. De leden kunnen worden benaderd met behulp van structure_variable_name. lidnaam. Als de programmeur toegang wil tot de naam van de student 2, dan kan hij de verklaring als printf schrijven (student2.student_namename);
Raadpleeg het onderstaande programma met een structuur.
Figuur 01: C-programma met structuren
Volgens het bovenstaande programma is Student een structuur. Het bevat student-id en studentnaam. Twee variabelen van structuurtype worden gedeclareerd in het hoofdprogramma. Ze worden student1 en student2 genoemd. De id van student1 wordt toegewezen met waarde 1 met behulp van de ledoperator als student1.student_id = 1. De naam "Ann" is een tekenreeks. Daarom wordt het gekopieerd naar het student-lid-lid met strcpy string string-functie. Het ID en de naam worden op dezelfde manier aan student2 toegewezen. Ten slotte worden die waarden afgedrukt met behulp van 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 studentnaam bevat 20 bytes (elk een byte voor een teken). De totale 24 bytes is de som van de geheugengrootte die door de structuur wordt vereist.
Een unie 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 boek te maken, kan een vakbond worden gebruikt om alle verschillende gegevenstypen samen te voegen tot een eenheid met behulp van een unie. Het wordt gedefinieerd met behulp van het sleutelwoord 'unie'. Het volgende creëert een afgeleide data unie boek.
unionBook
char name [20];
dubbele prijs;
;
Voor de bovenstaande unie kunnen variabelen als volgt worden gedeclareerd.
vakbond Boek boek1, boek2;
Er zijn twee methoden om toegang te krijgen tot de leden van de vakbond. Dat is door de lid-operator (.) En de operator van de structuurpijl (->) te gebruiken. De leden kunnen worden benaderd met union_variable_name. lidnaam. Als de programmeur toegang wil tot de naam van het boek1, kan hij de verklaring als printf (book1.name) schrijven;
Raadpleeg het onderstaande programma met een unie.
Afbeelding 02: C-programma met union
Volgens het bovenstaande programma is het boek een unie. Het boek1 is een variabele van type unie. De naam en prijs zijn toegewezen waarden. In unie kan slechts één van zijn leden tegelijk worden benaderd en alle andere leden hebben afvalwaarden. De waarde van id wordt niet goed afgedrukt, maar de prijswaarde wordt correct afgedrukt.
Figuur 03: Modified C-programma met unie
Volgens het bovenstaande programma is Boek een unie. Het boek1 en boek2 zijn variabelen van het uniontype. Eerst wordt de waarde voor book1-naam toegewezen en deze wordt afgedrukt. Vervolgens wordt de waarde voor book2-naam toegewezen en afgedrukt. Alle leden worden correct afgedrukt omdat één lid tegelijkertijd 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.
Structuur vs Unie in C | |
Structuur is een door de gebruiker gedefinieerd datatype in C-taal waarmee verschillende gegevens van verschillende typen kunnen worden gecombineerd. | Union is een door de gebruiker gedefinieerd datatype in C-taal waarmee verschillende gegevens van verschillende typen kunnen worden gecombineerd. |
Toegankelijkheid | |
In een structuur kunnen alle leden op elk moment worden benaderd. | In een vakbond kan slechts één van zijn leden tegelijk worden geopend en alle andere leden bevatten afvalwaarden. |
Geheugentoewijzing | |
Het geheugen dat nodig is om een structuurvariabele op te slaan, is de optelling van de geheugengrootte van alle leden. | Het geheugen dat nodig is om een vakbondsvariabele op te slaan, is het geheugen dat nodig is voor het grootste element in de Unie. |
keyword | |
Het sleutelwoord dat gebruikt wordt om een structuur te definiëren is 'struct'. | Het sleutelwoord dat gebruikt wordt om een vakbond te definiëren is 'vakbond'. |
Een array wordt gebruikt om de gegevenselementen van hetzelfde type op te slaan. Soms is het noodzakelijk om gegevenselementen van verschillende typen op dezelfde geheugenlocatie op te slaan. C programmeertaal biedt structuur en eenheid 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 optelling van de geheugengrootte van alle leden. Het geheugen dat nodig is om een vakbondsvariabele op te slaan, is het geheugen dat nodig is voor het grootste element in de Unie. Dit is het verschil tussen structuur en eenheid in C.
1.Point, zelfstudies. "Structuren in C.", Tutorials Point, 15 aug. 2017. Beschikbaar Hier
2.Point, zelfstudies. "Vakbonden in C." , Tutorials Point, 15 aug. 2017. Beschikbaar Hier