Forskjell mellom struktur og union i C

Forskjell mellom struktur og union i C
C -programmeringsspråket gir programmerere forskjellige datatyper for å lagre data i minnet for behandling. Blant disse datatypene er strukturer og fagforeninger to ofte brukte datatyper i C -programmering for å gruppere flere variabler av forskjellige datatyper til en enkelt enhet. Både strukturer og fagforeninger er definert av programmereren og tjener lignende formål. Imidlertid er de forskjellige i flere aspekter, inkludert lagring, minnetildeling og bruk.

Artikkelen gir en sammenlignende analyse mellom struktur og union på programmeringsspråket C.

Struktur i c

En struktur i C er en brukerdefinert datatype som lar programmerere gruppere variabler av forskjellige datatyper til en enkelt enhet. En struktur kan inneholde medlemmer, som kan være variabler av hvilken som helst datatype, for eksempel heltall, flyter, matriser eller til og med andre strukturer. For å erklære en struktur i C, må du bruke nøkkelordet “Struct” etterfulgt av navnet på strukturen og dens medlemsvariabler, som vist i følgende eksempel:

Erklæring om en struktur i C

Følgende er strukturerklæringen i C -programmering.

struct_keyword struct_name
data_type1 medlem1;
data_type2 medlem2;
;

Union i c

En union i C er også en brukerdefinert datatype som lar programmereren lagre forskjellige typer data på samme minneplassering. I motsetning til strukturer, har fagforeninger bare ett minneplass som deles av alle medlemmene. Derfor kan bare ett fagforeningsmedlem få tilgang til det på en gang. En unions størrelse måles etter størrelsen på det største medlemmet.

Erklæring om en fagforening i C

Her er et eksempel på hvordan du skal erklære en union i C.

Union_keyword Union_name
data_type1 medlem1;
data_type2 medlem2;
;

Forskjell mellom struktur og union i C

Følgende tabell viser forskjellen mellom struktur og union i C -programmering.

Trekk Struktur Union
Definisjon Innsamling av relaterte datamedlemmer Det samme minneplassen deles av alle medlemmer
Minnetildeling Tildeler minne for alle medlemmer Tildeler minne for det største medlemmet
Initialisere medlemmer Kan initialiseres individuelt eller som en helhet Kan bare initialisere ett medlem om gangen
Standard initialisering Medlemmene blir initialisert til standardverdier Medlemmene er uinitialisert som standard
Størrelseberegning Summen av størrelsene på alle medlemmer Størrelse på det største medlemmet
Bruk saker Brukes til å lagre flere typer data og få tilgang til dem sammen Brukes til å spare minne når flere datatyper deler samme minneplassering
Tilgang til medlemmer Bruker medlemsnavn og prikk (.) operatør Bruker medlemsnavn og prikk (.) operatør

Følgende er et kodingseksempel som illustrerer forskjellen mellom struktur og union i C -programmering.

#inkludere
struct myStruct
int a;
Char B;
;
Union MyUnion
int x;
char y;
;
int main ()
struktur mystruct mystruct;
myStruct.a = 10;
myStruct.b = 'a';
Union MyUnion MyUnion;
myunion.x = 10;
myunion.y = 'a';
printf ("Struct Values: %d, %c \ n", mystruct.A, myStruct.b);
printf ("Union Values: %d, %c \ n", myunion.x, myunion.y);
retur 0;

I koden ovenfor har vi definert en struktur som er navngitt MyStruct som inneholder et heltall og en karakter, og en union som heter Myunion som også inneholder et heltall og en karakter. Vi lager da forekomster av begge MyStruct og Myunion og angi verdiene sine. Vi setter heltallverdien på begge til 10 og karakterverdien til begge til 'EN'.

Når vi skriver ut verdiene til strukturen og foreningen, kan vi se at strukturen har separate variabler for heltall og karakter, og hver variabel beholder verdien. Utgangen vises nedenfor:

Konklusjon

Struktur og union er to forskjellige datatyper som har lignende syntaks på C -språket. De er forskjellige i noen aspekter som lagring, minnetildeling, brukervennlighet og andre funksjoner. Denne artikkelen presenterer en enkel guide for å finne en detaljert sammenligning mellom struktur og union etterfulgt av koding av eksempler som tydelig skiller både i C -programmering.