Forskjell mellom struktur og union Forskjellen mellom

Anonim

Begge struktur og fagforening er brukerdefinerte datatyper i C Language og er konseptuelt de samme, men de er fortsatt forskjellige på noen måter som måten minne er tildelt til sine medlemmer. De er erklært på samme måte, men de fungerer annerledes. De tillater brukeren å kombinere ulike datatyper under et enkelt navn. Mens separat minneplassering brukes for hvert medlem når deklarerer strukturvariabler, deler de forskjellige medlemmene av en forening variabel samme minneplassering. La oss studere forskjellen mellom struktur og fagforening er detalj.

Hva er struktur?

En struktur er bare en annen brukerdefinert datatype i C som gjør at brukeren kan kombinere datatyper av forskjellige slag til en enkelt type i en blokk med minne. En struktur kan inneholde både enkle og komplekse datatyper knyttet til hverandre, noe som ellers ikke vil gi mening. Hvert medlem i en struktur får sin egen minneplass slik at den kan nås og hentes når som helst.

En struktur brukes når mange data må gruppere som en katalog som lagrer informasjon om mange medlemmer i en bok eller en adressebok som lagrer all informasjon om en enkelt kontakt - navn, adresse, kontakt nummer, og så videre. Adressen til hvert medlem vil være i stigende rekkefølge, som betyr at minnet til hvert medlem vil starte ved forskjellige offsetverdier. Endring av verdien av ett medlem vil ikke ha noen effekt på andre medlemmer.

Et 'struct' søkeord brukes til å definere en struktur av forskjellige datatyper under et enkelt navn. For eksempel, hvis du vil opprette en ansatt database, må du lagre ansattes navn, alder, telefon og lønnsdetaljer under en enkelt enhet. Dette gjøres av søkeordet 'struct', som deretter forteller kompilatoren at en struktur er blitt erklært.

struct ansatt {

strengnavn;

streng alder;

streng telefon;

strenglønn;

} emp1, emp2;

Her er "ansatt" navnet på strukturen, og to variabler emp1 'og' emp2 'er opprettet av typen' ansatt '. De avsluttende bøylene må etterfølges av et semikolon (;).

Medlemmer av en struktur kan nås av to typer operatører:

  1. Medlemsoperatør
  2. Strukturpekeroperatør

Hva er Union?

Det er en spesiell datatype som brukes i C som tillater brukeren å lagre datatyper av forskjellige slag på samme minnested. En union er ganske lik en struktur, og den kan defineres ved å erstatte søkeordet 'struct' med søkeordet 'union'. Medlemmene overlegger minnet til hverandre i en union og det er stort nok til å passe alle medlemmene.

Når en variabel er tilknyttet union, tildeler kompilatoren minnet ved å vurdere størrelsen på det største minnet, så størrelsen på en union er lik størrelsen på det største datalaget.En union kan defineres med mange medlemmer, men bare ett medlem inneholder verdien på et gitt tidspunkt.

Adressen er den samme for alle medlemmer av en union som betyr at hvert medlem starter med samme offset-verdi. Hvis du endrer verdien av ett medlem, vil det påvirke verdiene til andre medlemmer. En union kan brukes når du ønsker å lagre noe som er en av flere datatyper.

unionsmedarbeider {

karnavnet [32];

alder;

flyte lønn;

};

Her definerer søkeordet 'union' foreningen som er ganske lik strukturdeklarasjonen. Variabelen kan enten lagre en strengverdi som er navnet på den ansatte, et heltall som er "alder av den ansatte", eller en flyt som representerer lønnen til den ansatte.

Forskjellen mellom struktur og union

1. Søkeord

Søkeordet 'struct' brukes til å definere en struktur, mens 'union' søkeord brukes til å definere en union.

2. Memory Allocation

Separat minne er tildelt for medlemmene i en struktur, og medlemmene har forskjellige adresser som ikke deler minne. En union, derimot, deler samme minneplass for alle sine medlemmer, slik at delt minneplass blir tildelt.

3. Medlemstilgang

En union lagrer en enkelt verdi om gangen for alle sine medlemmer som gjør tilgjengelighet til bare ett medlem av gangen. Mens flere verdier kan lagres i en struktur, kan noen medlemsverdier nås og hentes når som helst.

4. Størrelse

Størrelsen på en struktur er lik summen av størrelsen på alle medlemmer eller mer, mens størrelsen på en union er lik størrelsen på det største størrelsesmedlemmet.

5. Initialisering

I en struktur kan flere medlemmer initialiseres samtidig, mens i en union kun det første medlemmet kan initialiseres med verdien av sin type.

5. Verdi

En struktur kan lagre forskjellige verdier av alle medlemmene, og endring i verdien av ett medlem vil ikke ha noen effekt på verdiene til andre medlemmer. Mens en union lagrer samme verdi for alle medlemmene og verdiendring av ett medlem vil påvirke verdien av andre.

Struktur vs Union

Struktur Union
Strukturordet brukes til å definere en struktur. Unionens søkeord brukes til å definere en union.
Medlemmer deler ikke minne i en struktur. Medlemmer deler minneplassen i en union.
Ethvert medlem kan hentes når som helst i en struktur. Bare ett medlem kan nås på en tid i en fagforening.
Flere medlemmer av en struktur kan initialiseres samtidig. Bare det første medlemmet kan initialiseres.
Størrelsen på strukturen er lik summen av størrelsen på hvert medlem. Foreningens størrelse er lik størrelsen på det største medlemmet.
Endring av verdi på ett medlem vil ikke påvirke verdien til en annen. Endring i verdien av ett medlem vil påvirke andre medlemsverdier.
Lagrer ulike verdier for alle medlemmene. Lagrer samme verdi for alle medlemmene.

Sammendrag

  • Både strukturen og foreningen er brukerdefinerte datatyper i C som er funksjonelt og konseptuelt de samme, men er ganske forskjellige på noen måter.
  • Begge inneholder variabler av forskjellige datatyper, men de bruker samme syntaks for deklarasjon av variabler og tilgang til medlemmer. Mens en struktur er definert av 'struct' søkeordet, defineres en union av søkeordet 'union'.
  • Hvert medlem får separat minnestedsplass i en struktur, mens i en union er den totale minnesplassen ekvivalent med det største størrelsesmedlemmet. Alle medlemmene deler samme minneplass i en union.
  • Et hvilket som helst medlem i en hvilken som helst rekkefølge kan nås i en struktur, mens i en union, kun den variabelen kan nås, verdien er nylig lagret.