Både strukturen og foreningen 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.
En struktur er bare en annen brukerdefinert datatype i C som lar brukeren 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 trenger gruppering 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, kontaktnummer og så videre. Adressen til hvert medlem vil være i stigende rekkefølge, noe 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» -ordord 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
streng navn;
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:
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 knyttet til fagforening, tilordner 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 dataelementet. 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 fagforening som betyr at hvert medlem starter med samme offsetverdi. 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.
fagforeningens ansatt
char navn [32];
int alder;
flyte lønn;
;
Her definerer søkeordet 'union' foreningen som er ganske lik strukturdeklarasjonen. Variabelen kan enten lagre en strengverdi som er "ansattes navn", et heltall som er "ansattes alder", eller en flyt som representerer "lønn til ansatt".
1. Søkeord
Søkeordet 'struct' brukes til å definere en struktur, mens 'union' søkeord brukes til å definere en union.
2. Minnetildeling
Separat minne plasseres for medlemmene i en struktur, og medlemmene har forskjellige adresser som ikke deler minne. En union, derimot, deler samme minnesplass for alle sine medlemmer, slik at delt minneplass blir tildelt.
3. Medlemstilgang
En fagforening lagrer en enkelt verdi om gangen for alle medlemmene 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å den største størrelsen medlem.
5. Initialisering
I en struktur kan flere medlemmer initialiseres på en gang, mens i et fagforbund kan bare det første medlemmet initialiseres med verdien av sin type.
5. Verdi
En struktur kan lagre ulike 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 | Union |
Struct-søkeord 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. | Størrelsen på foreningen er lik størrelsen på det største medlemmet. |
Endring av verdi av 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. |