Forskjellen mellom struktur og forening i C

Hva er struktur?

Struktur er en brukerdefinert datatype i programmeringsspråket C som kombinerer logisk relaterte dataelementer av forskjellige datatyper sammen.

Alle strukturelementene er lagret på sammenhengende minneplasseringer. Strukturtypevariabel kan lagre mer enn ett dataelement med forskjellige datatyper under ett navn.

Hva er Union

Union er en brukerdefinert datatype, akkurat som en struktur. Union kombinerer gjenstander av forskjellige typer og størrelser sammen. Unionsvariabelen tildeler minneplassen lik plassen for å inneholde den største variabelen for union. Den lar ulike typer objekter dele samme plassering.

Syntaks for erklæringsstruktur

struct [name of the structure]
   {
       type member1;
       type member2;
       type member3;
   };

Struktur er deklarert ved å bruke nøkkelordet "struct" 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

#include <stdio.h>
struct 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 kalt student. Denne strukturen har tre datamedlemmer: 1) navn (streng), 2) roll_no (heltall) og 3) merker (float).

Etter dette opprettes en strukturvariabel sdt for å lagre elevinformasjon og vise den på dataskjermen.

Utgang:

Skriv inn følgende informasjon:

Skriv inn elevnavn: James

Skriv inn elevlistenummer: 21

Legg inn studentkarakterer: 67

Informasjonen du har lagt inn er:

Elevens navn: John

Elevlistenummer: 21

Elevkarakter: 67.0

Syntaks for å erklære union

union [name of union]
    {
       type member1;
       type member2;
       type member3;
    };

Fagforeningen erklæres ved å bruke nøkkelordet "union" og fagforeningens navn. Nummer 1, nummer 2, nummer 3 er individuelle medlemmer av fagforeningen. Kroppsdelen avsluttes med semikolon (;).

Eksempel på union i C-programmering

#include <stdio.h>

union 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;
}

Utgang:

1101109601

20.199892

a

I programmet ovenfor kan du se at verdiene til x og y blir ødelagt. Bare variabel lm skriver ut forventet resultat. Det er fordi, i forening, er minneplasseringen delt mellom alle medlemsdatatyper.

Derfor vil det eneste datamedlemmet hvis verdi for øyeblikket er lagret, oppta minneplass. Verdien av variabelen ch ble lagret til slutt, så verdien av resten av variabler er tapt.

Struktur vs. Union

Struktur vs. Union
Struktur vs. Union

Her er den viktige forskjellen mellom struktur og forening:

Structure Union
Du kan bruke et struct nøkkelord for å definere en struktur. Du kan bruke et fagforeningsnøkkelord for å definere en fagforening.
Hvert medlem i strukturen er tildelt en unik minneplassering. I forening deles en minneplassering av alle datamedlemmene.
Endring av verdien til ett datamedlem vil ikke påvirke andre datamedlemmer i strukturen. Endring av verdien til ett datamedlem vil endre verdien til andre datamedlemmer i fagforeningen.
Den lar deg initialisere flere medlemmer samtidig. Den lar deg initialisere kun 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 å lagre ulike datatyper. Den brukes hovedsakelig til å lagre en av de mange datatypene som er tilgjengelige.
Det opptar plass for hvert medlem skrevet i indre parametere. Den opptar plass for et medlem som har den høyeste størrelsen skrevet i indre parametere.
Du kan hente et hvilket som helst medlem om gangen. Du kan få tilgang til ett medlem om gangen i forbundet.
Den støtter fleksibel array. Den støtter ikke en fleksibel array.

Fordeler med struktur

Her er fordeler/fordeler med å bruke struktur:

  • Strukturer samler mer enn ett stykke data om samme emne på samme sted.
  • Det er nyttig når du vil samle inn data fra lignende datatyper og parametere som fornavn, etternavn osv.
  • Det er veldig enkelt å vedlikeholde siden vi kan representere hele posten ved å bruke ett enkelt navn.
  • I strukturen kan vi sende komplett sett med poster til enhver funksjon ved å bruke en enkelt parameter.
  • Du kan bruke en rekke strukturer til å lagre flere poster med lignende typer.

Fordeler med fagforening

Her er fordeler/fordeler ved å bruke union:

  • 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.
  • Den lar deg lagre data fra kun ett datamedlem.
  • Den tildelte plassen er lik maksimal størrelse på datamedlemmet.

Ulemper med struktur

Her er ulemper/ulemper ved bruk av struktur:

  • Hvis kompleksiteten til IT-prosjekter overskrider grensen, blir det vanskelig å administrere.
  • Endring av én datastruktur i en kode krever endringer mange andre steder. Derfor blir endringene vanskelige å spore.
  • Strukturen er tregere fordi den krever lagringsplass for alle dataene.
  • Du kan hente et hvilket som helst medlem om gangen i strukturen, mens du kan få tilgang til ett medlem om gangen i forbundet.
  • Struktur opptar plass for hvert medlem skrevet i indre parametere mens union opptar plass for et medlem som har den høyeste størrelsen skrevet i indre parametere.
  • Struktur støtter fleksibel array. Union støtter ikke en fleksibel oppstilling.

Ulemper med fagforening

Her er ulemper/ulemper ved bruk av union:

  • Du kan kun bruke ett fagforeningsmedlem om gangen.
  • Alle unionsvariablene kan ikke initialiseres eller brukes med varierende verdier om gangen.
  • Union tildeler én felles lagringsplass for alle sine medlemmer.

NØKKEL FORSKJELLER:

  • Hvert medlem i strukturen er tildelt en unik minneplassering, mens en minneplassering i forening deles av alle datamedlemmene.
  • Endring av verdien til ett datamedlem vil ikke påvirke andre datamedlemmer i strukturen, mens endring av verdien til ett datamedlem vil endre verdien til andre datamedlemmer i foreningen.
  • Struktur brukes hovedsakelig til å lagre ulike datatyper mens union hovedsakelig brukes til å lagre en av de mange datatypene.
  • I strukturen kan du hente et hvilket som helst medlem om gangen, på den annen side i fagforeningen kan du få tilgang til ett medlem om gangen.
  • Struktur støtter fleksibel array mens union ikke støtter en fleksibel array.

Sjekk også vår C-veiledning for nybegynnere:- Klikk her