Union i c

Union i c

Som strukturforbund er også et viktig konsept i C. Det er to typer som datatype finnes i C. De er primitive datatyper og ikke-primitive eller brukerdefinerte datatyper. Union er et eksempel på en ikke-primitiv datatype.

Hva er unionen og dens hovedfunksjoner

Union er en måte å gruppere variabler på. Noen ganger må vi lagre litt informasjon i en gruppe.

Anta at vi må lagre noen studenters informasjon. Informasjon betyr navn, adresse, mobilnummer, kjønn, merker, aggregater osv. En situasjon oppstår når bare ett datamedlem i denne gruppen av variabler må inneholde en verdi om gangen. I denne situasjonen, hvis vi lagrer disse dataene til flere variabler for hver student, blir programmet veldig komplekst og øker programmets utførelseshastighet.

For å redusere dette problemet, introduserer vi Union. Ved hjelp av unionen kan vi gruppere disse variablene til hver student i en enkelt variabel og inneholder en av disse gruppene av variabler om gangen.

Union er en samling av forskjellige elementer. Ulik betyr at vi kan lagre forskjellige datatypeverdier som Int, Char, Float, String, etc.

Hvis vi lagrer en students informasjon, må vi lagre navnet hans, merker, mobilnummer osv. Navnet er en streng, Mark er en flottør, mobilnnr er et heltallsarray. Så det er en gruppe forskjellige elementer.

Å definere union betyr å lage en ny datatype, Og vi vet at det å lage en ny datatype betyr at vi bruker her ikke-primitiv datatype.

Union er en brukerdefinert datatype som struktur. Men fagforeningsmedlemmer deler samme minneplassering.

Eksempel

Unionens eksempel


int x;
char y;
e;

Hvis vi skriver ut adressen til x og y., De kan inneholde samme adresseplassering

Det kan eksistere forskjellige typer datamedlemmer i unionen. Men Unionens størrelse beregnes i henhold til det største datamedlemmet som er til stede i unionen.

Programmering Eksempel 1

#inkludere
Union Item // Definere en annen union;

int x;
float y;
char z;
;
int main ()

printf (“ %d”, størrelse av (unionselement));
retur 0;

Produksjon

Forklaring

Her definerer vi en fagforening som heter vare. Datamedlemmer i denne foreningen er henholdsvis x, y og z, som er henholdsvis heltall, float og karaktertype. Nå innenfor hovedfunksjonen () bruker vi størrelsen på operatøren for å bestemme størrelsen på datatypen. Den får output 4 ettersom flytdatatypen er den høyeste datatypen som er til stede i unionen som et datamedlem.

Hvordan definere en fagforening

Unionens eksempel // Definere en union;

datatype var1;
datatype var2;
-------------------- ;
datatype lakk;
;
Union Item // Definere en annen union;

int x;
float y;
char z;
;

Minneforbruk

Ingen minne konsumeres for definisjonen av Union. Fordi minnet konsumeres på tidspunktet for erklæring om en variabel, men ikke i tilfelle av å definere datatype.

Som å definere union betyr å lage en ny datatype, forbrukes ikke minne. Minnet konsumeres på erklæringen om en bestemt type variabel.

Struktur vs. Union

Struct Item Union Item

Struct Item Union Item

int x; int x;
float y; float y;
char z; char z;

Struktur element I1; Unionens punkt I1;

Forklaring

I struktur kan vi lage minneplassen for en gruppe variabler. Alt datamedlemmet i strukturen inneholder minne om gangen.

Der vi i en union kan lage minneblokken til det høyeste minnet inneholder som eksisterer som en medlemsvariabel.

I struktur lager vi en struktur som tar (2 + 4 + 1) = 7 byte. Som heltall, float, tar Char henholdsvis 2, 4 og 1-byte minne.

Der i unionen oppretter vi en union som tar 4 byte minneblokk som float datatype variabel eksisterer her som den høyeste datatypemedlemvariabelen.

Fordeler med Union

Ved hjelp av unionen kan vi få tilgang til alle data en gang om gangen. Hvis vi ønsker å få tilgang til en annen medlemsvariabel, betyr det at variabelen eller verdien av variabelen overskriver den forrige verdien av en variabel. Det betyr at det tar verdien av den siste variabelen som finnes i unionen.

Programmering Eksempel 2

#inkludere
Union Item // Definere en annen union;

int x;
float y;
char z;
;
int main ()

Unionens punkt I1;
i1. x = 5;
printf (“\ n x = %d”, i1. x);
i1. y = 3. 5;
printf (“\ n y = %f”, i1. y);
i1. z = 'a';
printf (“\ n z = %c \ n”, i1. z);
retur 0;

Produksjon

Forklaring

Fra utgangen kan vi ha feil oppfatning om at fagforeningen bruker minneplass (2 + 4 + 1) = 7 byte. Men det er en feil oppfatning. For når vi bruker heltallvariabel, kan vi bruke dette. Så bruker vi floatvariabelen; Den variabelen overskriver verdien av x.

Etter å ha brukt verdien av y, hvis vi ønsker å skrive ut verdien på x igjen, får den utgang x = 0. Det kan konsumere minnet om en variabel i en tid med variabel datatype.

Programmeringseksempel 3

#inkludere
Unionens eksempel // Definere en annen union;

int x;
char z;
; u;
int main ()

u. x = 65;
printf (“x = %d \ n”, u. x);
printf (“z = %c \ n”, u. z);
retur 0;

Produksjon

Forklaring

Her definerer vi et union som heter eksempel. Inne i unionen er det to datamedlemmer som eksisterer. Den ene er heltallstype variabel x; En annen er karaktertype variabel z. Inne i hovedfunksjonen () er X tildelt 65.

Nå, hvis vi skriver ut verdien på x, viser det en verdi på 65. Overraskende hvis vi skriver ut verdien av y, viser det resultatet a. Ettersom datamedlemmene i forbundet deler den samme adresseplassen til minnet vårt og den binære verdien på 65 er A, viser det resultatet A som karakterverdi.

Konklusjon

Som strukturforbund er også et viktig konsept i C. Gjennom unionen lærer vi at mange datamedlemmer eller variabler kan dele samme adresseplassering i vårt minne. Så det er et unikt trekk ved unionen.