Rakenteen ja unionin välinen ero

Sisällysluettelo:

Anonim

Mikä on rakenne?

Rakenne on käyttäjän määrittelemä tietotyyppi C-ohjelmointikielellä, joka yhdistää loogisesti liittyvät erilaisten tietotyyppien tiedot.

Kaikki rakenneelementit on tallennettu vierekkäisiin muistipaikkoihin. Rakennetyyppimuuttuja voi tallentaa useampaa kuin yhtä erilaisten tietotyyppien tietokohtaa yhteen nimeen.

Tässä opetusohjelmassa opit:

  • Mikä on rakenne?
  • Mikä on unioni
  • Rakenteen ilmoittamisen syntakse
  • Esimerkki C-ohjelmoinnin rakenteesta
  • Unionin julistamisen syntaksi
  • Esimerkki unionista C-ohjelmoinnissa
  • Rakenne vs. liitto
  • Rakenteen edut
  • Unionin edut
  • Rakenteen haitat
  • Liiton haitat

Mikä on unioni

Union on käyttäjän määrittelemä tietotyyppi, aivan kuten rakenne. Union yhdistää erityyppisiä ja -kokoisia esineitä. Unionimuuttuja varaa muistitilan yhtä suureksi kuin tilaa suurimman muuttujan pitämiselle. Sen avulla erityyppiset kohteet voivat jakaa saman sijainnin.

Rakenteen ilmoittamisen syntakse

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

Rakenne ilmoitetaan käyttämällä "struct" avainsanaa ja rakenteen nimeä. Numero 1, numero 2, numero 3 ovat yksittäisiä rakenteen jäseniä. Runko-osa on erotettu puolipisteellä (;).

Esimerkki C-ohjelmoinnin rakenteesta

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

Yllä olevassa ohjelmassa luodaan rakenne nimeltä opiskelija. Tässä rakenteessa on kolme datajäsentä: 1) nimi (merkkijono), 2) roll_no (kokonaisluku) ja 3) merkit (float).

Tämän jälkeen luodaan rakennemuuttuja sdt, joka tallentaa opiskelijatietoja ja näyttää ne tietokoneen näytöllä.

Tuotos:

Syötä seuraavat tiedot:

Kirjoita opiskelijan nimi: James

Anna opiskelijan luettelonumero: 21

Anna opiskelijan arvosanat: 67

Antamasi tiedot ovat:

Opiskelijan nimi: John

Opiskelijan luettelonumero: 21

Opiskelijoiden arvosanat: 67,0

Unionin julistamisen syntaksi

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

Unioni ilmoitetaan käyttämällä "unioni" -avainsanaa ja liiton nimeä. Numero 1, numero 2, numero 3 ovat liiton yksittäisiä jäseniä. Runko-osa on erotettu puolipisteellä (;).

Esimerkki unionista C-ohjelmoinnissa

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

Tuotos:

1101109601

20.199892

a

Yllä olevassa ohjelmassa näet, että x: n ja y: n arvot vioittuvat. Vain muuttuja ch tulostaa odotetun tuloksen. Se johtuu siitä, että muistissa muistin sijainti jaetaan kaikkien jäsentietotyyppien kesken.

Siksi ainoa datajäsen, jonka arvo on tällä hetkellä tallennettu, vie muistitilaa. Muuttujan ch arvo tallennettiin vihdoin, joten muiden muuttujien arvo menetetään.

Rakenne vs. liitto

Tässä on tärkeä ero rakenteen ja liiton välillä:

Rakenne liitto
Voit määrittää rakenteen avainsanalla strukt. Voit määrittää liiton avainsanan avulla.
Jokaiselle jäsenelle rakenteessa on määritetty ainutlaatuinen muistipaikka. Unionissa muistin sijainti jaetaan kaikille datan jäsenille.
Yhden tietojäsenen arvon muuttaminen ei vaikuta muihin rakenneosassa oleviin tietojäseniin. Yhden tietojäsenen arvon muuttaminen muuttaa muiden liitossa olevien tietojen jäsenten arvoa.
Sen avulla voit alustaa useita jäseniä kerralla. Sen avulla voit alustaa vain liiton ensimmäisen jäsenen.
Rakenteen koko on kunkin datan jäsenen koon summa. Unionin koko on suurimman datajäsenen koko.
Sitä käytetään pääasiassa erilaisten tietotyyppien tallentamiseen. Sitä käytetään pääasiassa yhden monista käytettävissä olevista tietotyypeistä tallentamiseen.
Se vie tilaa jokaiselle jäsenelle, joka on kirjoitettu sisäisiin parametreihin. Se vie tilaa jäsenelle, jolla on suurin koko kirjoitettuna sisäisiin parametreihin.
Voit hakea minkä tahansa jäsenen kerrallaan. Voit käyttää liitossa yhtä jäsentä kerrallaan.
Se tukee joustavaa ryhmää. Se ei tue joustavaa taulukkoa.

Rakenteen edut

Tässä on rakenteen käytön etuja / etuja:

  • Rakenteet keräävät useampaa kuin yhtä tietoa samasta aiheesta yhdessä samassa paikassa.
  • Se on hyödyllistä, kun haluat kerätä tietoja samankaltaisista tietotyypeistä ja parametreista, kuten etunimi, sukunimi jne.
  • Se on erittäin helppo ylläpitää, koska voimme edustaa koko tietuetta yhdellä nimellä.
  • Rakenteessa voimme siirtää täydelliset tietueet mihin tahansa toimintoon yhdellä parametrilla.
  • Voit käyttää joukkoa rakennetta tallentaaksesi enemmän tietueita samantyyppisillä tiedostoilla.

Unionin edut

Tässä ovat ammattiliiton käytön edut / edut:

  • Se vie vähemmän muistia verrattuna rakenteeseen.
  • Kun käytät unionia, vain viimeiseen muuttujaan pääsee suoraan.
  • Unionia käytetään, kun joudut käyttämään samaa muistipaikkaa kahdelle tai useammalle datajäsenelle.
  • Sen avulla voit pitää tietoja vain yhdestä datajäsenestä.
  • Sen varattu tila on yhtä suuri kuin datajäsenen maksimikoko.

Rakenteen haitat

Tässä on haittoja / haittoja rakenteen käytölle:

  • Jos IT-projektin monimutkaisuus ylittää rajan, sitä on vaikea hallita.
  • Yhden tietorakenteen muuttaminen koodissa edellyttää muutoksia monissa muissa paikoissa. Siksi muutoksia on vaikea seurata.
  • Rakenne on hitaampi, koska se vaatii tallennustilaa kaikille tiedoille.
  • Voit hakea minkä tahansa jäsenen kerrallaan rakenteessa, kun taas voit käyttää yhtä jäsentä kerrallaan liitossa.
  • Rakenne vie tilaa jokaiselle jäsenelle, joka on kirjoitettu sisäisiin parametreihin, kun taas unioni vie tilaa jäsenelle, jolla on suurin koko kirjoitettu sisäisiin parametreihin.
  • Rakenne tukee joustavaa ryhmää. Unioni ei tue joustavaa järjestelmää.

Liiton haitat

Tässä on haittoja / haittoja unionin käytölle:

  • Voit käyttää vain yhtä ammattiliiton jäsentä kerrallaan.
  • Kaikkia liitemuuttujia ei voida alustaa tai käyttää vaihtelevilla arvoilla kerrallaan.
  • Unioni antaa kaikille jäsenilleen yhden yhteisen tallennustilan.

AVAINEROT:

  • Jokaiselle jäsenelle rakenteessa annetaan yksilöllinen muistipaikka, kun taas liitoksessa muistipaikka jaetaan kaikille datan jäsenille.
  • Yhden tietojäsenen arvon muuttaminen ei vaikuta muihin rakenneosassa oleviin tietojäseniin, kun taas yhden tietojäsenen arvon muuttaminen muuttaa muiden liitossa olevien tietojen jäsenten arvoa.
  • Rakennetta käytetään pääasiassa erilaisten tietotyyppien tallentamiseen, kun taas unionia käytetään pääasiassa yhden monista tietotyypeistä.
  • Rakenteessa voit hakea minkä tahansa jäsenen kerrallaan toisaalta liitossa, voit käyttää yhtä jäsentä kerrallaan.
  • Rakenne tukee joustavaa ryhmää, kun taas unioni ei tue joustavaa ryhmää.