Hva er struktur?
Struktur er en brukerdefinert datatype i C-programmeringsspråk som kombinerer logisk relaterte dataelementer av forskjellige datatyper sammen.
Alle strukturelementene er lagret på sammenhengende minneplasser. Strukturtypevariabel kan lagre mer enn ett dataelement med forskjellige datatyper under ett navn.
I denne opplæringen lærer du:
- Hva er struktur?
- Hva er Union
- Syntaks for deklarerende struktur
- Eksempel på struktur i C-programmering
- Syntaks for erklærende union
- Eksempel på Union i C-programmering
- Structure Vs. Union
- Fordeler med struktur
- Fordeler med fagforening
- Ulemper med struktur
- Ulemper ved fagforening
Hva er Union
Union er en brukerdefinert datatype, akkurat som en struktur. Union kombinerer gjenstander av forskjellige typer og størrelser sammen. Foreningsvariabelen tildeler minneplassen lik plass for å inneholde den største variabelen for forening. Det gjør at forskjellige typer objekter kan dele samme sted.
Syntaks for deklarerende struktur
struct [name of the structure]{type member1;type member2;type member3;};
Struktur er erklært ved hjelp av "struct" nøkkelordet og navnet på strukturen. Nummer 1, nummer 2, nummer 3 er individuelle medlemmer av strukturen. Kroppsdelen avsluttes med semikolon (;).
Eksempel på struktur i C-programmering
#includestruct student {char name[60];int roll_no;float marks;} sdt;int main() {printf("Enter the following information:\n");printf("Enter student name: ");fgets(sdt.name, sizeof(sdt.name), stdin);printf("Enter student roll number: ");scanf("%d", & sdt. roll_no);printf("Enter students marks: ");scanf("%f", & sdt.marks);printf("The information you have entered is: \n");printf("Student name: ");printf("%s", sdt.name);printf("Student roll number: %d\n", sdt. roll_no);printf("Student marks: %.1f\n", sdt.marks);return 0;}
I programmet ovenfor opprettes en struktur som heter student. Denne strukturen har tre dataelementer: 1) navn (streng), 2) roll_no (heltall) og 3) merker (float).
Etter dette opprettes en strukturvariabel sdt for å lagre studentinformasjon og vise den på dataskjermen.
Produksjon:
Skriv inn følgende informasjon:
Skriv inn studentnavnet: James
Angi studentrullnummer: 21
Angi studentkarakterer: 67
Informasjonen du har angitt er:
Elevens navn: John
Studentrullnummer: 21
Studentkarakterer: 67.0
Syntaks for erklærende union
union [name of union]{type member1;type member2;type member3;};
Union erklæres ved å bruke nøkkelordet "union" og navnet på unionen. Nummer 1, nummer 2, nummer 3 er individuelle medlemmer av fagforeningen. Kroppsdelen avsluttes med semikolon (;).
Eksempel på Union i C-programmering
#includeunion item{int x;float y;char ch;};int main( ){union item it;it.x = 12;it.y = 20.2;it.ch = 'a';printf("%d\n", it.x);printf("%f\n", it.y);printf("%c\n", it.ch);return 0;}
Produksjon:
1101109601
20.199892
en
I programmet ovenfor kan du se at verdiene til x og y blir ødelagt. Bare variabel ch skriver ut det forventede resultatet. Det er fordi, i forening, deles minneplasseringen mellom alle medlemsdatatyper.
Derfor vil det eneste dataelementet hvis verdi for øyeblikket er lagret, oppta minne. Verdien av variabelen ch ble til slutt lagret, så verdien av resten av variablene går tapt.
Structure Vs. Union
Her er den viktige forskjellen mellom struktur og union:
Struktur | Union |
Du kan bruke et nøkkelord for å definere en struktur. | Du kan bruke et fagord for å definere en fagforening. |
Hvert medlem i strukturen tildeles en unik minneplassering. | I fagforening deles et minneplassering av alle datamedlemmene. |
Endring av verdien til ett datamedlem påvirker ikke andre datamedlemmer i strukturen. | Endring av verdien til ett datamedlem vil endre verdien av andre datamedlemmer i fagforeningen. |
Den lar deg initialisere flere medlemmer samtidig. | Det lar deg initialisere bare det første medlemmet av fagforeningen. |
Den totale størrelsen på strukturen er summen av størrelsen på hvert datamedlem. | Den totale størrelsen på fagforeningen er størrelsen på det største datamedlemmet. |
Den brukes hovedsakelig til lagring av forskjellige datatyper. | Den brukes hovedsakelig til lagring av en av de mange datatypene som er tilgjengelige. |
Det opptar plass for hvert eneste medlem skrevet i indre parametere. | Det opptar plass for et medlem som har den høyeste størrelsen skrevet i indre parametere. |
Du kan hente ethvert medlem om gangen. | Du kan få tilgang til ett medlem om gangen i fagforeningen. |
Den støtter fleksibelt utvalg. | Den støtter ikke et fleksibelt utvalg. |
Fordeler med struktur
Her er fordeler / fordeler ved bruk av struktur:
- Strukturer samler mer enn ett stykke data om samme emne sammen på samme sted.
- Det er nyttig når du vil samle inn data fra lignende datatyper og parametere som fornavn, etternavn, etc.
- Det er veldig enkelt å vedlikeholde da vi kan representere hele posten ved å bruke et enkelt navn.
- I struktur kan vi sende et komplett sett med poster til en hvilken som helst funksjon ved hjelp av en enkelt parameter.
- Du kan bruke en rekke strukturer for å lagre flere poster med lignende typer.
Fordeler med fagforening
Her er fordeler / fordeler ved å bruke fagforening:
- Det opptar mindre minne sammenlignet med struktur.
- Når du bruker union, er det bare den siste variabelen som er direkte tilgjengelig.
- Union brukes når du må bruke samme minneplassering for to eller flere datamedlemmer.
- Det lar deg holde data fra bare ett datamedlem.
- Dens tildelte plass er lik maksimumsstørrelsen på datamedlemet.
Ulemper med struktur
Her er ulemper / ulemper ved bruk av struktur:
- Hvis kompleksiteten i IT-prosjektet går utover grensen, blir det vanskelig å administrere.
- Endring av en datastruktur i en kode krever endringer mange andre steder. Derfor blir endringene vanskelig å spore.
- Strukturen er tregere fordi den krever lagringsplass for alle dataene.
- Du kan hente ethvert medlem om gangen i struktur, mens du kan få tilgang til ett medlem om gangen i fagforeningen.
- Struktur opptar plass for hvert eneste medlem skrevet i indre parametere, mens fagforening opptar plass for et medlem som har den høyeste størrelsen skrevet i indre parametere.
- Struktur støtter fleksibelt utvalg. Union støtter ikke et fleksibelt utvalg.
Ulemper ved fagforening
Her er ulemper / ulemper ved bruk av fagforening:
- Du kan bare bruke ett fagforeningsmedlem om gangen.
- Alle foreningsvariablene kan ikke initialiseres eller brukes med forskjellige verdier om gangen.
- Union tildeler en felles lagringsplass for alle medlemmene.
HOVEDFORSKJELL:
- Hvert medlem i strukturen tildeles en unik minneplassering, mens i minnet deles et minneplassering av alle datamedlemmene.
- Endring av verdien til ett datamedlem vil ikke påvirke andre datamedlemmer i struktur, mens endring av verdien til ett datamedlem vil endre verdien av andre datamedlemmer i union.
- Struktur brukes hovedsakelig til lagring av forskjellige datatyper mens union hovedsakelig brukes til lagring av en av de mange datatypene.
- I struktur kan du hente ethvert medlem om gangen, derimot i fagforening, du kan få tilgang til ett medlem om gangen.
- Struktur støtter fleksibelt array mens union ikke støtter et fleksibelt array.