Vad är skillnaden mellan strukturunionen och Enum i C

Struktur är en datatyp som lagrar olika datatyper i samma minnesplats Den totala minnesstorleken för strukturen är summan av minnesstorlekar för alla dess medlemmar. Däremot är Union en datatyp som lagrar olika datatyper i samma minnesplats. Den totala minnesstorleken beror på minnesstorleken på de största elementen. Under tiden är Enum en datatyp som lagrar integrerade konstanter. Det är den största skillnaden mellan strukturunionen och enum i C.

Vid programmering kan en variabel lagra ett värde av en enda datatyp. Ibland är det nödvändigt att lagra variabler av olika typer som en enda enhet. Struktur och union är två metoder för att lagra flera variabler av olika typer som en enda variabel. Å andra sidan är enum en datatyp för att deklarera en uppsättning namngivna konstanter. Alla dessa är användardefinierade datatyper.

Viktiga områden som omfattas

1. Vad är struktur
     - Definition, Funktionalitet
2. Vad är Unionen?
    - Definition, Funktionalitet
3. Vad är Enum
    - Definition, Funktionalitet
4. Vad är skillnaden mellan strukturunionen och Enum i C
    - Jämförelse av viktiga skillnader

Nyckelbegrepp

C, Enum, Struktur, Union

Vad är struktur

En struktur är en enda variabel som kan hålla data av flera typer. Det är en uppsättning variabler av olika datatyper. Ett exempel på en struktur är som följer.

Figur 1: Struktur i C

Enligt ovanstående program innehåller strukturen som kallas komplex två egenskaper; real representerar den verkliga delen av det komplexa talet medan img representerar den imaginära delen av komplexa tal. I huvudprogrammet deklarerar rad 10 två strukturtypvariabler som heter c1 och c2. Linje 11 till linje 14 ger värdena till reella och img av varje c1 och c2. I rad 15 lagras variabeln summan av reella värdena för c1 och c2. På samma sätt lagrar variabeln i rad 16 summan av img-värdena för c1 och c2. Slutligen visas summan av komplexa tal på konsolen.

Vad är Unionen?

Union tillåter lagring av olika datatyper i samma minnesplats. Till exempel kan en anställd ha egenskaper som namn, lön och stad. I stället för att skapa variabler för var och en av dem är det möjligt att använda en fackförening. Den komprimerar alla olika datatyper till en enda enhet.

Figur 2: Unionen i C

Avståndet mellan två punkter p1 och p2 är som följer.  

Avstånd = (p2.a - p1.a) 2 + (p2.b - p1.b) 2

Enligt ovanstående program är Point en union. Den har två egenskaper: a och b. I huvudprogrammet är avstånd, t1 och t2 variabler av typen float; p1 och p2 är typförbund. Linje 12 till 15, ger värden till a och b av pl och a och b av p2. t1 och t2 är variabler lagrar effektvärdena. I linje 18 lagras variabelavståndet mellan punkt p1 och p2. Slutligen visas svaret på konsolen.

Unionen och strukturen är mycket lika, men de har en skillnad. I fackföreningar är det totala minnet som krävs för att lagra facket minnet om det största elementet i den fackföreningen. Antag exempelvis att en fackförening har tre egenskaper: namn, lön och id. Namnet tar 32 byte, och lön och id tar 4 byte vardera. Största är 32byte, och minnesallokationen för facket är 32 byte.

Vad är Enum

Enum står för uppräkning. Det är en användardefinierad datatyp som består av integrerade konstanter. Ett exempel är som följer.

Figur 3: Enum i C

Veckan är en enum. Som standard har söndag värdet 0, måndag har värdet 1, tisdag har värdet 2 etc. I huvudprogrammet är idag en enum av typveckan. Det är tilldelat med fredag. Nästa dag är lördag och den har konstant 6. Därför kommer utmatningen "Dag 6" att visas på konsolen.

Tänk på att programmeraren förklarade enum enligt följande.

enum vecka söndag = 1, måndag, tisdag, onsdag, torsdag, fredag, lördag;

Då kommer huvudprogrammet att ge utmatningen som "Dag 7".

Skillnad mellan Structure Union och Enum i C

Definition

Struktur är en datatyp som lagrar olika datatyper i samma minnesplats, och vars totala minnesstorlek för strukturen är summeringen av minnesstorlekarna för alla dess medlemmar. Däremot är Union en datatyp som lagrar olika datatyper i samma minnesplats, och vars totala minnesstorlek beror på minnesstorleken för dess största element. Enum är en datatyp i C-språk som representerar en värde typ för att deklarera en uppsättning namngivna konstanter. Dessa definitioner skisserar den grundläggande skillnaden mellan strukturunionen och enum i C.

Nyckelord

Nyckelordet att deklarera en struktur är "struct" medan sökordet att deklarera en union är "union" och sökordet att deklarera en Enum är "enum".

Användande

Det finns en skillnad mellan strukturunionen och enum i C baserad på deras användning också. Både struktur och union hjälper till att lagra data av olika typer som en enda enhet medan enum hjälper till att tilldela konstanter till en uppsättning namn för att göra programmet lättare att läsa, underhålla och förstå. 

Slutsats

Struktur är en datatyp som lagrar olika datatyper i samma minnesplats Den totala minnesstorleken för strukturen är summan av minnesstorlekar för alla dess medlemmar. Däremot är Union en datatyp som lagrar olika datatyper i samma minnesplats. Den totala minnesstorleken beror på minnesstorleken på de största elementen. Under tiden är Enum en datatyp som lagrar integrerade konstanter. Således är detta den största skillnaden mellan strukturunionen och enum i C.

Referens:

1. "C Programmeringsstruktur." Python-strängar (med exempel), Tillgängliga här.
2. "C Programmeringsförbund." Pythonsträngar (med exempel), Tillgängliga här.
3. "C Programmering Uppräkning." Python Strängar (med exempel), Tillgänglig här.