Både struktur og union er brugerdefinerede datatyper i C-sprog og er konceptuelt de samme, men de er stadig forskellige på nogle måder som den måde, hvorpå hukommelsen tildeles til deres medlemmer. De erklæres på lignende måde, men de fungerer forskelligt. De giver brugeren mulighed for at kombinere forskellige datatyper under et enkelt navn. Mens der bruges separat hukommelsesplacering for hvert medlem, når deklarerer strukturvariabler, deler de forskellige medlemmer af en unionsvariabel den samme hukommelsesplacering. Lad os studere forskellen mellem struktur og forening er detaljer.
En struktur er bare en anden brugerdefineret datatype i C, der giver brugeren mulighed for at kombinere datatyper af forskellige slags til en enkelt type i en hukommelsesblok. En struktur kan indeholde både enkle og komplekse datatyper relateret til hinanden, som ellers ikke giver mening. Hvert medlem i en struktur får sin egen hukommelsesplacering, så det kan tilgås og hentes når som helst.
En struktur bruges, når en masse data har brug for at blive grupperet som et bibliotek, der gemmer information om mange medlemmer i en bog eller en adressebog, der gemmer alle oplysninger om en enkelt kontaktperson - navn, adresse, kontaktnummer osv. Adressen til hvert medlem vil være i stigende rækkefølge, hvilket betyder, at hvert medlems hukommelse starter ved forskellige forskydningsværdier. Ændring af værdien af et medlem påvirker ikke andre medlemmer.
Et 'struktur' nøgleord bruges til at definere en struktur af forskellige datatyper under et enkelt navn. Hvis du f.eks. Vil oprette en medarbejderdatabase, skal du gemme medarbejderens navn, alder, telefon og lønningsoplysninger under en enkelt enhed. Dette gøres ved nøgleordet 'struktur', der derefter fortæller kompilatoren, at en struktur er blevet erklæret.
struktur medarbejder
streng navn;
streng alder;
streng telefon;
streng løn;
emp1, emp2;
Her er 'medarbejder' navnet på strukturen, og to variabler 'emp1' og 'emp2' oprettes af typen 'medarbejder'. Lukebåndene skal følges af et semikolon (;).
Medlemmer af en struktur kan fås af to typer operatører:
Det er en speciel datatype, der bruges i C, der giver brugeren mulighed for at gemme datatyper af forskellige slags på den samme hukommelsesplacering. En union ligner en struktur, og den kan defineres ved at udskifte nøgleordet 'struktur' med nøgleordet 'union'. Medlemmerne lægger hinanden sammen i en fagforening, og den er stor nok til at passe til alle dens medlemmer.
Når en variabel er forbundet med union, tildeler kompilatoren hukommelsen ved at overveje størrelsen på den største hukommelse, så størrelsen på en union er lig med størrelsen på det største datamedlem. En fagforening kan defineres med mange medlemmer, men kun et medlem indeholder værdien på et givet tidspunkt.
Adressen er den samme for alle medlemmer af en fagforening, hvilket betyder, at hvert medlem starter med den samme forskydningsværdi. Og ændring af værdien af et medlem påvirker andre medlemmers værdier. En fagforening kan bruges, når du ønsker at gemme noget, der er en af flere datatyper.
fagforening medarbejder
char navn [32];
int alder;
float løn;
;
Her definerer nøgleordet 'fagforening' foreningen, der svarer til strukturdeklarationen. Variablen kan enten gemme en strengværdi, der er 'medarbejderens navn', en heltalværdi, der er 'medarbejderens alder', eller en float, der repræsenterer 'medarbejderens løn'.
1. Nøgleord
Nøgleordet 'struktur' bruges til at definere en struktur, mens 'unions' nøgleord bruges til at definere en union.
2. Hukommelsesfordeling
Separat hukommelsesplads tildeles medlemmerne i en struktur, og medlemmerne har forskellige adresser, der ikke deler hukommelse. En fagforening, på den anden side, deler den samme hukommelsesplads for alle dens medlemmer, så delte hukommelsesplacering tildeles.
3. Medlemstilgang
En fagforening lagrer en enkelt værdi ad gangen for alle sine medlemmer, der gør tilgængelighed for kun et medlem ad gangen. Mens flere værdier kan gemmes i en struktur, så enhver medlemsværdi kan tilgås og hentes til enhver tid.
4. Størrelse
Størrelsen på en struktur er lig med summen af størrelsen på alle medlemmer eller mere, mens størrelsen på en union er lig med størrelsen på det største størrelse medlem.
5. Initialisering
I en struktur kan flere medlemmer initialiseres på én gang, mens i en union kun kan det første medlem initialiseres med værdien af dets type.
5. Værdi
En struktur kan gemme forskellige værdier for alle medlemmer, og ændring i værdien af et medlem vil ikke have nogen indflydelse på andre medlemmers værdier. Mens en fagforening lagrer samme værdi for alle dets medlemmer, og ændring af værdien af et medlem vil påvirke værdien af et andet.
Struktur | Union |
Strukturnøgleord bruges til at definere en struktur. | Unionens nøgleord bruges til at definere en union. |
Medlemmer deler ikke hukommelse i en struktur. | Medlemmer deler hukommelsesområdet i en fagforening. |
Ethvert medlem kan hentes når som helst i en struktur. | Der er kun adgang til et medlem ad gangen i en fagforening. |
Flere medlemmer af en struktur kan initialiseres på én gang. | Kun det første medlem kan initialiseres. |
Strukturens størrelse er lig med summen af størrelsen på hvert medlem. | Størrelsen på fagforeningen er lig med størrelsen på det største medlem. |
Ændring af værdien af et medlem påvirker ikke værdien af et andet. | Ændring i værdien af et medlem påvirker andre medlemsværdier. |
Gemmer forskellige værdier for alle medlemmer. | Gemmer samme værdi for alle medlemmer. |