Forskellen mellem struktur og union i C.

Nøgleforskel - struktur vs Union i C
 

En matrix er en data struktureret understøttet af C-sprog. En matrix kan bruges til at gemme dataelementer af samme type. Hvis der er en erklæring som int-mærker [10]; så er mærker en matrix, der kan gemme ti mærker, og alle er heltal. Nogle gange er det påkrævet at gemme dataelementer af forskellige typer på den samme hukommelsesplacering. For eksempel kan en medarbejder have en medarbejder-ID, navn, afdeling, alder osv. De er af forskellige datatyper. Derfor er det nødvendigt at have en metode til at gemme forskellige dataelementer som en enkelt enhed. Strukturer og fagforeninger i C bruges til at lagre dataelementer af forskellige typer på den samme hukommelsesplacering. En struktur og en union er ens, men de adskiller sig hovedsageligt på grund af hukommelsesallokering. Den hukommelse, der kræves til at gemme en strukturvariabel, er summeringen af ​​hukommelsesstørrelsen for alle medlemmer. Den hukommelse, der kræves til at gemme en unionsvariabel, er den hukommelse, der kræves til det største element i unionen. Det er den vigtigste forskel mellem struktur og union i C. Denne artikel diskuterer forskellen mellem struktur og union i C.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er struktur i C
3. Hvad er Unionen i C
4. Ligheder mellem struktur og union i C
5. Sammenligning side ved side - Struktur vs Union i C i tabelform
6. Resume

Hvad er struktur i C?

En struktur er en brugerdefineret datatype i C. Den hjælper med at kombinere dataelementer af forskellige typer. En struktur kan repræsentere poster. En studerende kan have student_id, student_name osv. I stedet for at gemme hver variabel separat, kan alle disse forskellige dataelementer komprimeres til en enkelt enhed ved hjælp af en struktur. Det defineres ved hjælp af nøgleordet 'struktur'. I en struktur kan alle dens medlemmer tilgås når som helst.Det følgende skaber en afledt datatype struktur Student.

struktur Student

intstudent_id;

char student_navn [20];

;

For ovennævnte struktur kan variabler deklareres som følger.

struktur Student student1, student2, student3;

Der er to metoder til at få adgang til medlemmerne af strukturen. Det er ved at bruge medlemsoperatøren (.) Og strukturpekertelefonoperatoren (->). Medlemmerne kan fås ved hjælp af structure_variable_name. medlems navn. Hvis programmøren vil have adgang til navnet på den studerende 2, kan han skrive udsagnet som printf (student2.student_namename);

Se nedenstående program med en struktur.

Figur 01: C-program med strukturer

I henhold til ovenstående program er studerende en struktur. Det indeholder student_id og student_navn. To variabler af strukturtype er deklareret i hovedprogrammet. De kaldes student1 og studerende2. Studentens id tildeles værdi 1 ved hjælp af medlemsoperatøren som student1.student_id = 1. Navnet “Ann” er en streng. Derfor kopieres det til studentnavnnavnet ved hjælp af strengkopieringsfunktion strcpy. Id og navn tildeles studerende2 på lignende måde. Endelig udskrives disse værdier ved hjælp af medlemsoperatøren.

Mængden af ​​hukommelse, der kræves til at gemme en strukturvariabel, er summen af ​​hukommelsesstørrelsen for alle medlemmer. Student_id indeholder 4 byte, og studentnavn indeholder 20 byte (en byte hver for et tegn). De samlede 24 byte er summen af ​​hukommelsesstørrelse, der kræves af strukturen.

Hvad er Unionen i C.?

En fagforening er en brugerdefineret datatype i C. Det hjælper med at gemme forskellige datatyper i den samme hukommelsesplacering. En bog kan have egenskaber som bognavn, pris osv. I stedet for at oprette variabler til hver af dem, kan en union bruges til at komprimere alle forskellige datatyper til en enhed ved hjælp af en union. Det defineres ved hjælp af nøgleordet 'fagforening'. Følgende opretter en afledt dataunionbog.

unionBook

char navn [20];

dobbelt pris;

;

For ovennævnte union kan variabler deklareres som følger.

fagbog bog 1, bog 2;

Der er to metoder til at få adgang til medlemmerne af fagforeningen. Det er ved at bruge medlemsoperatøren (.) Og strukturpekertelefonoperatoren (->). Medlemmerne kan fås ved hjælp af union_variable_name. medlems navn. Hvis programmereren ønsker at få adgang til navnet på bogen1, kan han skrive udsagnet som printf (book1.name);

Se nedenstående program med en fagforening.

Figur 02: C-program ved hjælp af union

I henhold til ovenstående program er Bogen en fagforening. Bogen1 er en variabel af typeunion. Navn og pris er tildelt værdier. I fagforeningen kan kun et af dets medlemmer fås ad gangen ad gangen, og alle andre medlemmer har affaldsværdier. Værdien af ​​id udskrives ikke korrekt, men prisværdien udskrives korrekt.

Figur 03: Ændret C-program med union

I henhold til ovenstående program er Book en fagforening. Bog 1 og bog2 er variabler af unionstypen. Først tildeles værdien for bog1-navn, og den udskrives. Derefter tildeles værdien for book2-navnet, og det udskrives. Alle medlemmerne udskrives korrekt, fordi et medlem bruges ad gangen. Den hukommelse, der kræves for at gemme en union, er den hukommelse, der kræves til det største element i unionen. I ovenstående program er navnevariablen 20 byte. Det er større end prisen. Så hukommelsestildelingen for unionen er 20 byte.

Hvad er ligheden mellem struktur og union i C?

  • Både struktur og Union i C er brugerdefinerede datatyper.
  • Både Struktur og Union i C kan bruges til at gemme forskellige datatyper på den samme hukommelsesplacering.

Hvad er forskellen mellem struktur og union i C?

Struktur vs Union i C.

Struktur er en brugerdefineret datatype på C-sprog, der tillader at kombinere data af forskellige typer sammen. Union er en brugerdefineret datatype på C-sprog, der tillader at kombinere data af forskellige typer sammen.
 Tilgængelighed
I en struktur kan alle dens medlemmer tilgås når som helst. I en fagforening kan kun et af dens medlemmer få adgang ad gangen, og alle andre medlemmer vil indeholde affaldsværdier.
Hukommelsesfordeling
Den hukommelse, der kræves til at gemme en strukturvariabel, er summeringen af ​​hukommelsesstørrelsen for alle medlemmer. Den hukommelse, der kræves til at gemme en unionsvariabel, er den hukommelse, der kræves til det største element i unionen.
 Søgeord
Det nøgleord, der bruges til at definere en struktur, er 'struktur'. Det nøgleord, der bruges til at definere en fagforening, er 'fagforening'.

Resumé - Struktur vs Union i C

En matrix bruges til at gemme dataelementerne af samme type. Nogle gange er det nødvendigt at gemme dataelementer af forskellige typer på den samme hukommelsesplacering. C programmeringssprog giver struktur og forening til at udføre denne opgave. Begge er brugerdefinerede datatyper. Den hukommelse, der kræves til at gemme en strukturvariabel, er summeringen af ​​hukommelsesstørrelsen for alle medlemmer. Den hukommelse, der kræves til at gemme en unionsvariabel, er den hukommelse, der kræves til det største element i unionen. Dette er forskellen mellem struktur og forening i C.

Reference:

1.Point, selvstudier. “Strukturer i C.”, Tutorials Point, 15. august 2017. Findes her 
2.Point, selvstudier. “Fagforeninger i C.” , Tutorials Point, 15. august 2017. Findes her