Wat is het verschil tussen Structuur Unie en Enum in C

Structuur is een gegevenstype dat verschillende gegevenstypen op dezelfde geheugenlocatie opslaat; de totale geheugengrootte van de structuur is de optelling van geheugengroottes van alle leden. Union daarentegen is een gegevenstype dat verschillende gegevenstypen op dezelfde geheugenlocatie opslaat; de totale geheugengrootte is afhankelijk van de geheugengrootte van de grootste elementen. Ondertussen is Enum een ​​gegevenstype dat integrale constanten opslaat. Dat is het belangrijkste verschil tussen structuur unie en enum in C.

Tijdens het programmeren kan een variabele een waarde van een enkel gegevenstype opslaan. Soms is het nodig om variabelen van verschillende typen op te slaan als een enkele eenheid. Structuur en unie zijn twee methoden om meerdere variabelen van verschillende typen op te slaan als een enkele variabele. Aan de andere kant is enum een ​​gegevenstype om een ​​reeks benoemde constanten te declareren. Dit zijn allemaal door de gebruiker gedefinieerde gegevenstypen.

Key Areas Covered

1. Wat is structuur
     - Definitie, functionaliteit
2. Wat is Unie
    - Definitie, functionaliteit
3. Wat is Enum
    - Definitie, functionaliteit
4. Wat is het verschil tussen Structuur Unie en Enum in C
    - Vergelijking van belangrijke verschillen

Sleutelbegrippen

C, Enum, Structuur, Unie

Wat is structuur

Een structuur is een enkele variabele die gegevens van meerdere typen kan bevatten. Het is een reeks variabelen van ongelijke gegevenstypes. Een voorbeeld van een structuur is als volgt.

Figuur 1: Structuur in C

Volgens het bovenstaande programma bevat de structuur genaamd complex twee eigenschappen; real vertegenwoordigt het reële deel van het complexe getal terwijl img het imaginaire deel van de complexe getallen vertegenwoordigt. In het hoofdprogramma declareert regel 10 twee variabelen van het struct type, c1 en c2 genaamd. Regel 11 tot regel 14 geeft waarden aan real en img van elke c1 en c2. In regel 15 slaat de variabele r de som van reële waarden van c1 en c2 op. Evenzo slaat in regel 16 de variabele i de som van img-waarden van cl en c2 op. Ten slotte wordt de optelling van complexe getallen weergegeven op de console.

Wat is Unie

Met Union kunt u verschillende gegevenstypen op dezelfde geheugenlocatie opslaan. Een medewerker kan bijvoorbeeld eigenschappen hebben zoals naam, salaris en, stad. In plaats van variabelen voor elk van hen te maken, is het mogelijk om een ​​unie te gebruiken. Het comprimeert alle verschillende gegevenstypen in een enkele eenheid.

Figuur 2: Union in C

De afstand tussen twee punten p1 en p2 is als volgt.  

Distance = (p2.a - p1.a) 2 + (p2.b - p1.b) 2

Volgens het bovenstaande programma is Point een unie. Het heeft twee eigenschappen: a en b. In het hoofdprogramma zijn afstand, t1 en t2 variabelen van het type float; p1 en p2 zijn type unie. Regel 12 tot 15 geeft waarden aan de a en b van p1 en a en b van p2. t1 en t2 zijn variabelen om de vermogenswaarden op te slaan. In regel 18 slaat de variabele afstand de afstand op tussen punt p1 en p2. Ten slotte wordt het antwoord weergegeven op de console.

Unie en structuur lijken erg op elkaar, maar ze hebben een verschil. In vakbonden is het totale geheugen dat nodig is om de unie op te slaan de herinnering aan het grootste element in die unie. Neem bijvoorbeeld aan dat een unie drie eigenschappen heeft: naam, salaris en id. De naam heeft 32 bytes nodig en het salaris en de ID nemen elk 4 bytes in beslag. De grootste is 32 bytes en de geheugentoewijzing voor de unie is 32 bytes.

Wat is Enum

Enum staat voor enumeratie. Het is een door de gebruiker gedefinieerd gegevenstype dat bestaat uit integrale constanten. Een voorbeeld is als volgt.

Figuur 3: Enum in C

De week is een opsomming. Standaard heeft zondag de waarde 0, maandag heeft de waarde 1, dinsdag heeft de waarde 2, enzovoort. In het hoofdprogramma is vandaag een opsomming van het type week. Het is toegewezen met vrijdag. De volgende dag is zaterdag en heeft constante 6. Daarom wordt de uitvoer "Dag 6" weergegeven op de console.

Neem bijvoorbeeld aan dat de programmeur het opsommingsteken als volgt heeft verklaard.

enumweek zondag = 1, maandag, dinsdag, woensdag, donderdag, vrijdag, zaterdag;

Vervolgens geeft het hoofdprogramma de uitvoer weer als "Dag 7".

Verschil tussen Structuur Unie en Enum in C

Definitie

Structuur is een gegevenstype dat verschillende gegevenstypen op dezelfde geheugenlocatie opslaat en waarvan de totale geheugengrootte van de structuur de som is van geheugengroottes van alle leden. Union daarentegen is een gegevenstype dat verschillende gegevenstypen op dezelfde geheugenlocatie opslaat en waarvan de totale geheugengrootte afhangt van de geheugengrootte van de grootste elementen. Enum is een gegevenstype in C-taal dat een waardetype vertegenwoordigt voor het declareren van een reeks benoemde constanten. Deze definities schetsen het fundamentele verschil tussen structuur unie en enum in C.

keyword

Het sleutelwoord om een ​​Structuur te declareren is 'struct', terwijl het sleutelwoord om een ​​Union te declareren 'union' is, en het sleutelwoord om een ​​Enum te declareren is 'enum'.

Gebruik

Er is een verschil tussen structuur unie en enum in C op basis van hun gebruik ook. Zowel structuur als unie helpen bij het opslaan van gegevens van verschillende typen als een enkele eenheid, terwijl enum helpt om constanten aan een reeks namen toe te wijzen om het programma gemakkelijker te kunnen lezen, onderhouden en begrijpen. 

Conclusie

Structuur is een gegevenstype dat verschillende gegevenstypen op dezelfde geheugenlocatie opslaat; de totale geheugengrootte van de structuur is de optelling van geheugengroottes van alle leden. Union daarentegen is een gegevenstype dat verschillende gegevenstypen op dezelfde geheugenlocatie opslaat; de totale geheugengrootte is afhankelijk van de geheugengrootte van de grootste elementen. Ondertussen is Enum een ​​gegevenstype dat integrale constanten opslaat. Dit is dus het belangrijkste verschil tussen structuur unie en enum in C.

Referentie:

1. "C Programmeringsstructuur." Python-snaren (met voorbeelden), hier beschikbaar.
2. "C Programmerende Unions." Python Strings (met voorbeelden), hier beschikbaar.
3. "C Programming Enumeration." Python Strings (met voorbeelden), hier beschikbaar.