Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

Verschil tussen structuur en unie

Wat is structuur?

Structuur is een door de gebruiker gedefinieerd gegevenstype in de programmeertaal C dat logisch gerelateerde gegevensitems van verschillende gegevenstypen combineert.

Alle structuurelementen worden opgeslagen op aangrenzende geheugenlocaties. Structuurtypevariabele kan meer dan één gegevensitem van verschillende gegevenstypen onder één naam opslaan.

In deze tutorial leer je:

  • Wat is structuur?
  • Wat is Union
  • Syntaxis van het declareren van structuur
  • Voorbeeld van structuur in C-programmering
  • Syntaxis van het verklaren van een unie
  • Voorbeeld van Union in C-programmering
  • Structuur versus Unie
  • Voordelen van structuur
  • Voordelen van vakbond
  • Nadelen van structuur
  • Nadelen van vakbond

Wat is Union

Union is een door de gebruiker gedefinieerd gegevenstype, net als een structuur. Union combineert objecten van verschillende soorten en maten met elkaar. De union-variabele wijst de geheugenruimte toe die gelijk is aan de ruimte om de grootste unievariabele te bevatten. Hierdoor kunnen verschillende soorten objecten dezelfde locatie delen.

Syntaxis van het declareren van structuur

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

Structuur wordt gedeclareerd met het trefwoord "struct" en de naam van de structuur. Nummer 1, nummer 2, nummer 3 zijn individuele leden van de structuur. Het lichaamsdeel wordt afgesloten met een puntkomma (;).

Voorbeeld van structuur in 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;
}

In het bovenstaande programma wordt een structuur met de naam student gemaakt. Deze structuur heeft drie gegevensleden:1) naam (tekenreeks), 2) roll_no (geheel getal) en 3) markeringen (zwevend).

Hierna wordt een structuurvariabele sdt gemaakt om studentinformatie op te slaan en op het computerscherm weer te geven.

Uitvoer:

Voer de volgende informatie in:

Voer de naam van de student in:James

Voer het studentenrolnummer in:21

Voer leerlingcijfers in:67

De informatie die je hebt ingevoerd is:

Naam leerling:John

Aantal studentenrollen:21

Studentencijfers:67,0

Syntaxis van het verklaren van een unie

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

Union wordt verklaard met behulp van het trefwoord "union" en de naam van de vakbond. Nummer 1, nummer 2, nummer 3 zijn individuele leden van de vakbond. Het lichaamsdeel wordt afgesloten met een puntkomma (;).

Voorbeeld van Union in 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;
}

Uitvoer:

1101109601

20.199892

een

In het bovenstaande programma kun je zien dat de waarden van x en y beschadigd raken. Alleen variabele ch drukt het verwachte resultaat af. Het is omdat, in union, de geheugenlocatie wordt gedeeld door alle datatypes van leden.

Daarom zal het enige datalid waarvan de waarde momenteel is opgeslagen, geheugenruimte innemen. De waarde van de variabele ch is eindelijk opgeslagen, dus de waarde van de rest van de variabelen gaat verloren.

Structuur vs. Unie

Hier is het belangrijke verschil tussen structuur en unie:

Structuur Unie U kunt een struct-trefwoord gebruiken om een ​​structuur te definiëren. U kunt een union-trefwoord gebruiken om een ​​unie te definiëren. Aan elk lid binnen een structuur wordt een unieke geheugenlocatie toegewezen. In een unie wordt een geheugenlocatie gedeeld door alle gegevensleden. De waarde wijzigen van één gegevenslid heeft geen invloed op andere gegevensleden in de structuur. Als u de waarde van één gegevenslid wijzigt, verandert de waarde van andere gegevensleden in de unie. Hiermee kunt u meerdere leden tegelijk initialiseren. Hiermee kunt u alleen het eerste lid initialiseren van unie. De totale grootte van de structuur is de som van de grootte van elk gegevenslid. De totale grootte van de unie is de grootte van het grootste gegevenslid. Het wordt voornamelijk gebruikt voor het opslaan van verschillende gegevenstypen. Het wordt voornamelijk gebruikt voor het opslaan van een van de vele gegevenstypen die beschikbaar zijn. Het neemt ruimte in beslag voor elk lid dat is geschreven in innerlijke parameters. Het neemt ruimte in voor een lid met de hoogste grootte geschreven in innerlijke parameters. U kunt elk lid tegelijk ophalen. U kunt toegang tot één lid er tegelijk in de unie. Het ondersteunt flexibele array. Het ondersteunt geen flexibele array.

Voordelen van structuur

Hier zijn de voordelen/voordelen van het gebruik van structuur:

  • Structuren verzamelen meer dan één stuk gegevens over hetzelfde onderwerp samen op dezelfde plaats.
  • Het is handig wanneer u gegevens van vergelijkbare gegevenstypen en parameters zoals voornaam, achternaam, enz. wilt verzamelen.
  • Het is heel gemakkelijk te onderhouden omdat we het hele record kunnen vertegenwoordigen door een enkele naam te gebruiken.
  • In structuur kunnen we een complete set records doorgeven aan elke functie met een enkele parameter.
  • U kunt een array van structuren gebruiken om meer records met vergelijkbare typen op te slaan.

Voordelen van vereniging

Hier zijn de voordelen/voordelen van het gebruik van union:

  • Het neemt minder geheugen in beslag in vergelijking met de structuur.
  • Als je union gebruikt, is alleen de laatste variabele direct toegankelijk.
  • Union wordt gebruikt wanneer u dezelfde geheugenlocatie voor twee of meer gegevensleden moet gebruiken.
  • Hiermee kunt u gegevens van slechts één gegevenslid bewaren.
  • De toegewezen ruimte is gelijk aan de maximale grootte van het gegevenslid.

Nadelen van structuur

Hier zijn nadelen/nadelen voor het gebruik van structuur:

  • Als de complexiteit van een IT-project de limiet overschrijdt, wordt het moeilijk te beheren.
  • Verandering van één datastructuur in een code vereist veranderingen op veel andere plaatsen. Daarom worden de wijzigingen moeilijk te volgen.
  • Structuur is langzamer omdat er opslagruimte voor alle gegevens nodig is.
  • Je kunt elk lid tegelijk in de structuur ophalen, terwijl je in de vakbond toegang hebt tot één lid tegelijk.
  • Structuur neemt ruimte in beslag voor elk lid dat in innerlijke parameters is geschreven, terwijl union ruimte inneemt voor een lid met de hoogste grootte geschreven in innerlijke parameters.
  • Structuur ondersteunt flexibele array. Union ondersteunt geen flexibele array.

Nadelen van vakbond

Hier zijn de nadelen/nadelen voor het gebruik van union:

  • Je kunt maar één vakbondslid tegelijk gebruiken.
  • Alle unievariabelen kunnen niet worden geïnitialiseerd of gebruikt met verschillende waarden tegelijk.
  • Union wijst één gemeenschappelijke opslagruimte toe aan al haar leden.

BELANGRIJKE VERSCHILLEN:

  • Elk lid binnen de structuur krijgt een unieke geheugenlocatie toegewezen, terwijl in een unie een geheugenlocatie wordt gedeeld door alle gegevensleden.
  • Het wijzigen van de waarde van één gegevenslid heeft geen invloed op andere gegevensleden in de structuur, terwijl het wijzigen van de waarde van één gegevenslid de waarde van andere gegevensleden in de unie zal veranderen.
  • Structuur wordt voornamelijk gebruikt voor het opslaan van verschillende gegevenstypen, terwijl unie voornamelijk wordt gebruikt voor het opslaan van een van de vele gegevenstypen.
  • In de structuur kun je elk lid tegelijk ophalen, terwijl je in de vakbond toegang hebt tot één lid tegelijk.
  • Structuur ondersteunt flexibele array, terwijl union geen flexibele array ondersteunt.

C Taal

  1. Verschil tussen asbest en glasvezel
  2. Verschil tussen structuur en klasse:uitgelegd met C++-voorbeeld
  3. C# versus C++:wat is het verschil tussen C# en C++?
  4. Verschil tussen C en C ++
  5. Verschil tussen C en Java
  6. Verschil tussen strlen() en sizeof() voor string in C
  7. Python versus JavaScript:verschil tussen JavaScript en Python
  8. Python versus Ruby:verschil tussen Ruby en Python
  9. Het verschil tussen gelijkstroom- en wisselstroommotoren
  10. Verschil tussen solderen en solderen
  11. Verschil tussen 2-takt en 4-takt motoren