Skillnad mellan struktur och union

Innehållsförteckning:

Anonim

Vad är struktur?

Structure är en användardefinierad datatyp i C-programmeringsspråk som kombinerar logiskt relaterade dataobjekt av olika datatyper tillsammans.

Alla strukturelement lagras på angränsande minnesplatser. Strukturtypsvariabel kan lagra mer än ett dataelement med olika datatyper under ett namn.

I den här handledningen lär du dig:

  • Vad är struktur?
  • Vad är union
  • Syntax för deklarerande struktur
  • Exempel på struktur i C-programmering
  • Syntax för deklarerande union
  • Exempel på union i C-programmering
  • Structure Vs. Union
  • Fördelar med struktur
  • Fördelar med fackförening
  • Nackdelar med strukturen
  • Nackdelar med fackförening

Vad är union

Union är en användardefinierad datatyp, precis som en struktur. Union kombinerar objekt av olika typer och storlekar tillsammans. Föreningsvariabeln allokerar minnesutrymmet lika med utrymmet för att hålla den största variabeln för förening. Det gör att olika typer av objekt kan dela samma plats.

Syntax för deklarerande struktur

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

Struktur deklareras med hjälp av nyckelordet "struct" och strukturens namn. Nummer 1, nummer 2, nummer 3 är enskilda medlemmar i strukturen. Kroppsdelen avslutas med ett semikolon (;).

Exempel på struktur i C-programmering

#include 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 ovan skapas en struktur som heter student. Denna struktur har tre datamedlemmar: 1) namn (sträng), 2) roll_no (heltal) och 3) markeringar (float).

Efter detta skapas en strukturvariabel sdt för att lagra studentinformation och visa den på datorskärmen.

Produktion:

Ange följande information:

Ange studentnamn: James

Ange studentrollnummer: 21

Ange studentbetyg: 67

Informationen du har angett är:

Studentnamn: John

Studentrullnummer: 21

Elevbetyg: 67.0

Syntax för deklarerande union

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

Union deklareras med hjälp av nyckelordet "union" och namnet på unionen. Nummer 1, nummer 2, nummer 3 är enskilda medlemmar i fackföreningen. Kroppsdelen avslutas med ett semikolon (;).

Exempel på union i C-programmering

#include 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;}

Produktion:

1101109601

20.199892

a

I ovanstående program kan du se att värdena på x och y blir skadade. Endast variabel ch skriver ut det förväntade resultatet. Det beror på att i minnet delas minnesplatsen mellan alla medlemsdatatyper.

Därför kommer den enda datamedlem vars värde för närvarande är lagrat att ta upp minne. Värdet på variabeln ch lagrades äntligen, så värdet på resten av variablerna går förlorat.

Structure Vs. Union

Här är den viktiga skillnaden mellan struktur och union:

Strukturera Union
Du kan använda ett struktordnyckelord för att definiera en struktur. Du kan använda ett nyckelord för att definiera en union.
Varje medlem inom strukturen tilldelas en unik minnesplats. I unionen delas en minnesplats av alla datamedlemmar.
Att ändra värdet på en datamedlem påverkar inte andra datamedlemmar i strukturen. Att ändra värdet på en datamedlem kommer att ändra värdet på andra datamedlemmar i unionen.
Det gör att du kan initiera flera medlemmar samtidigt. Det gör att du bara kan initialisera den första medlemmen i facket.
Den totala storleken på strukturen är summan av storleken på varje datamedlem. Fackets totala storlek är storleken på den största datamedlemmen.
Den används främst för att lagra olika datatyper. Den används främst för att lagra en av de många datatyper som är tillgängliga.
Det upptar utrymme för varje medlem skriven i inre parametrar. Det upptar utrymme för en medlem som har den högsta storleken skriven i inre parametrar.
Du kan hämta alla medlemmar åt gången. Du kan komma åt en medlem åt gången i facket.
Den stöder flexibel uppsättning. Det stöder inte ett flexibelt array.

Fördelar med struktur

Här är fördelar / fördelar med att använda struktur:

  • Strukturer samlar mer än en bit data om samma ämne på samma plats.
  • Det är användbart när du vill samla in data för liknande datatyper och parametrar som förnamn, efternamn, etc.
  • Det är mycket lätt att underhålla eftersom vi kan representera hela posten med ett enda namn.
  • I struktur kan vi skicka hela uppsättningen poster till valfri funktion med en enda parameter.
  • Du kan använda en rad strukturer för att lagra fler poster med liknande typer.

Fördelar med fackförening

Här är fördelar / fördelar med att använda fackförening:

  • Det upptar mindre minne jämfört med struktur.
  • När du använder union kan endast den sista variabeln nås direkt.
  • Union används när du måste använda samma minnesplats för två eller flera datamedlemmar.
  • Det gör att du kan lagra data från endast en datamedlem.
  • Dess tilldelade utrymme är lika med datamedlemens maximala storlek.

Nackdelar med strukturen

Här är nackdelar / nackdelar med att använda struktur:

  • Om IT-projektets komplexitet går över gränsen blir det svårt att hantera.
  • Ändring av en datastruktur i en kod kräver ändringar på många andra platser. Därför blir förändringarna svåra att spåra.
  • Strukturen är långsammare eftersom det kräver lagringsutrymme för all data.
  • Du kan hämta varje medlem åt gången i struktur medan du kan komma åt en medlem i taget i facket.
  • Struktur upptar utrymme för varje medlem skriven i inre parametrar medan union upptar utrymme för en medlem som har den högsta storleken skriven i inre parametrar.
  • Struktur stöder flexibel uppsättning. Union stöder inte ett flexibelt system.

Nackdelar med fackförening

Här är nackdelar / nackdelar med att använda union:

  • Du kan bara använda en facklig medlem åt gången.
  • Alla unionsvariabler kan inte initieras eller användas med olika värden åt gången.
  • Union tilldelar ett gemensamt lagringsutrymme för alla sina medlemmar.

VÄSENTLIGA SKILLNADER:

  • Varje medlem inom strukturen tilldelas en unik minnesplats medan i minnet delas en minnesplats av alla datamedlemmar.
  • Att ändra värdet på en datamedlem kommer inte att påverka andra datamedlemmar i struktur medan ändring av värdet på en datamedlem kommer att ändra värdet på andra datamedlemmar i unionen.
  • Struktur används främst för lagring av olika datatyper medan union används huvudsakligen för lagring av en av de många datatyperna.
  • I strukturen kan du hämta varje medlem åt gången å andra sidan i union, du kan komma åt en medlem i taget.
  • Structure stöder flexibel array medan union inte stöder flexibel array.