Forskellen mellem struktur og forening i C

Indholdsfortegnelse:

Forskellen mellem struktur og forening i C
Forskellen mellem struktur og forening i C

Video: Forskellen mellem struktur og forening i C

Video: Forskellen mellem struktur og forening i C
Video: НАЛОГОВЫЙ АДВОКАТ США объясняет: Корпорация (S corp и C corp), LLC, партнерство. Как выбрать? 2024, December
Anonim

Nøgleforskel – Struktur vs Union i C

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

Hvad er struktur i C?

En struktur er en brugerdefineret datatype i C. Det hjælper med at kombinere dataelementer af forskellige typer. En struktur kan repræsentere optegnelser. En elev kan have elev_id, elev_navn 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 søgeordet 'struct'. I en struktur kan alle dens medlemmer tilgås til enhver tid. Følgende opretter en afledt datatypestruktur Student.

struct Elev {

intstudent_id;

char student_name[20];

};

For ovenstående struktur kan variable deklareres som følger.

struct Elev elev1, elev2, elev3;

Der er to metoder til at få adgang til medlemmerne af strukturen. Det er ved at bruge medlemsoperatoren (.) og strukturmarkøroperator (->). Medlemmerne kan tilgås ved hjælp af structure_variable_name. medlems navn. Hvis programmøren ønsker at få adgang til navnet på elev 2, så kan han skrive erklæringen som printf(student2.student_name);

Se nedenstående program med en struktur.

Forskellen mellem struktur og forening i C
Forskellen mellem struktur og forening i C

Figur 01: C-program med strukturer

Ifølge ovenstående program er Student en struktur. Den indeholder student_id og student_name. To variable af strukturtype er deklareret i hovedprogrammet. De hedder elev1 og elev2. Elev1s id tildeles værdi 1 ved hjælp af medlemsoperatoren som student1.student_id=1. Navnet "Ann" er en streng. Derfor kopieres det til elev_navn-medlemmet ved hjælp af string copy-funktionen strcpy. Id og navn tildeles elev2 på lignende måde. Til sidst udskrives disse værdier ved hjælp af medlemsoperatoren.

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

Hvad er Union i C?

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

unionBook{

tegnnavn[20];

dobbeltpris;

};

For ovenstående forening kan variabler erklæres som følger.

union Bog bog1, bog2;

Der er to metoder til at få adgang til fagforeningens medlemmer. Det er ved at bruge medlemsoperatoren (.) og strukturmarkøroperator (->). Medlemmerne kan tilgås ved at bruge union_variable_name. medlems navn. Hvis programmøren ønsker at få adgang til navnet på bog1, så kan han skrive erklæringen som printf(bog1.navn);

Henvis nedenstående program med en fagforening.

Forskellen mellem struktur og forening i C_Figur 02
Forskellen mellem struktur og forening i C_Figur 02

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

Ifølge ovenstående program er Bogen en fagforening. Bog1 er en variabel af typen union. Navnet og prisen er tildelt værdier. I fagforeningen kan kun ét af dets medlemmer tilgås ad gangen, og alle andre medlemmer vil have skraldværdier. Værdien af id udskrives ikke korrekt, men prisværdien udskrives korrekt.

Nøgleforskel mellem struktur og forening i C
Nøgleforskel mellem struktur og forening i C

Figur 03: Ændret C-program med fagforening

Ifølge ovenstående program er Book en fagforening. Bog1 og bog2 er unionsvariabler. Først tildeles værdien for bog1 navn, og det udskrives. Derefter tildeles værdien for bog2 navn, og den udskrives. Alle medlemmer udskriver korrekt, fordi der bruges et medlem ad gangen. Den hukommelse, der kræves for at gemme en forening, er den hukommelse, der kræves til det største element i foreningen. I ovenstående program er navnevariablen 20 bytes. Det er større end prisen. Så hukommelsestildelingen for fagforeningen er 20 bytes.

Hvad er lighederne mellem struktur og forening i C?

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

Hvad er forskellen mellem struktur og forening i C?

Structure vs Union i C

Structure er en brugerdefineret datatype i C-sprog, der gør det muligt at kombinere data af forskellige typer sammen. Union er en brugerdefineret datatype i C-sprog, der gør det muligt at kombinere data af forskellige typer sammen.
Tilgængelighed
I en struktur kan alle dens medlemmer tilgås til enhver tid. I en fagforening er der kun adgang til ét af dens medlemmer ad gangen, og alle andre medlemmer vil indeholde skraldværdier.
Hukommelsestildeling
Hukommelsen, der kræves for at gemme en strukturvariabel, er summeringen af hukommelsesstørrelsen for alle medlemmer. Hukommelsen, der kræves for at gemme en unionsvariabel, er den hukommelse, der kræves for det største element i foreningen.
Søgeord
Nøgleordet, der bruges til at definere en struktur, er 'struct'. Nøgleordet, der bruges til at definere en fagforening, er 'union'.

Opsummering – Struktur vs Union i C

En matrix bruges til at gemme dataelementer 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 for at lagre en strukturvariabel, er summeringen af hukommelsesstørrelsen for alle medlemmer. Den hukommelse, der kræves for at gemme en unionsvariabel, er den hukommelse, der kræves for det største element i foreningen. Dette er forskellen mellem struktur og forening i C.

Anbefalede: