Ero rakenteen ja unionin välillä C ssä

Avainero - rakenne vs liitto julkaisussa C
 

Matriisi on C-kielen tukema tieto. Taulukkoa voidaan käyttää samantyyppisten tietoelementtien tallentamiseen. Jos on lause int-merkkeinä [10]; silloin merkit ovat taulukko, johon voi tallentaa kymmenen merkkiä ja ne kaikki ovat kokonaislukuja. Joskus vaaditaan erityyppisten dataelementtien tallentamista samaan muistipaikkaan. Työntekijällä voi olla esimerkiksi työntekijän tunnus, nimi, osasto, ikä jne. He ovat erityyppisiä tietotyyppejä. Siksi on välttämätöntä olla menetelmä erilaisten dataelementtien tallentamiseksi yhtenä yksikönä. C: n rakenteita ja liitoksia käytetään erityyppisten dataelementtien tallentamiseen samaan muistipaikkaan. Rakenne ja liitto ovat samankaltaisia, mutta ne erottuvat pääasiassa muistin allokoinnin vuoksi. Rakennemuuttujan tallentamiseksi tarvittava muisti on kaikkien jäsenten muistikokojen summaus. Liitosmuuttujan tallentamiseksi tarvittava muisti on liitoksen suurimmalle elementille vaadittava muisti. Tuo on avainero rakenteen ja liitoksen välillä C. Tässä artikkelissa tarkastellaan rakenteen ja liitoksen eroa C: ssä.

SISÄLLYS

1. Yleiskatsaus ja keskeiset erot
2. Mikä on rakenne C: ssä?
3. Mikä on unioni C: ssä?
4. Rakenteen ja unionin samankaltaisuudet C: ssä
5. Vertailu rinnakkain - rakenne vs unioni C-taulukossa
6. Yhteenveto

Mikä on rakenne C: ssä??

Rakenne on käyttäjän määrittelemä tietotyyppi C: ssä. Se auttaa yhdistämään erityyppisiä tietoalkioita. Rakenne voi edustaa tietueita. Opiskelijalla voi olla opiskelija_tunnus, opiskelijan_nimi jne. Sen sijaan, että tallennetaan kutakin muuttujaa erikseen, kaikki nämä eri tietoaineistot voivat olla kompakti yhdeksi yksiköksi rakennetta käyttämällä. Se määritellään avainsanalla 'struct'. Rakenteessa kaikkiin sen jäseniin voidaan päästä milloin tahansa. Seuraava luo johdetun tietotyypin struct Student.

struct Student

intstudent_id;

char opiskelijanimi [20];

;

Edellä olevalle rakenteelle muuttujat voidaan ilmoittaa seuraavasti.

rakenne Opiskelija opiskelija1, opiskelija2, opiskelija3;

Rakenteen jäseniin pääsyä varten on olemassa kaksi tapaa. Toisin sanoen käyttämällä jäsenoperaattoria (.) Ja rakenneosoittimen operaattoria (->). Jäseniin pääsee käyttämällä rakenteen_muuttuja_nimiä. jäsen nimi. Jos ohjelmoija haluaa käyttää opiskelijan nimeä 2, hän voi kirjoittaa lausunnon printf (student2.student_namename);

Katso alla oleva ohjelma rakenteella.

Kuva 01: C-ohjelma rakenteilla

Yllä olevan ohjelman mukaan Opiskelija on rakenne. Se sisältää opiskelijan_n ja opiskelijan_nimen. Kaksi rakennetyypin muuttujaa julistetaan pääohjelmassa. Niitä kutsutaan opiskelija1 ja opiskelija2. Opiskelija1: n tunnukselle annetaan arvo 1 käyttämällä jäsenoperaattoria tunnuksella opiskelija1 opiskelija_id = 1. Nimi ”Ann” on merkkijono. Siksi se kopioidaan opiskelijan_nimi jäsenelle käyttämällä merkkijonokopiointitoimintoa strcpy. Tunnus ja nimi annetaan opiskelijalle2 samalla tavalla. Lopuksi nämä arvot tulostetaan jäsenoperaattorilla.

Rakennemuuttujan tallentamiseksi tarvittava muistin määrä on kaikkien jäsenten muistikokojen summa. Student_id sisältää 4 tavua ja student_name sisältää 20 tavua (yksi tavu kukin merkkiä kohti). Yhteensä 24 tavua on rakenteen vaatiman muistin koon summa.

Mikä on unioni C: ssä??

Liitto on käyttäjän määrittelemä tietotyyppi C: ssä. Se auttaa tallentamaan erilaisia ​​tietotyyppejä samaan muistipaikkaan. Teoksella voi olla ominaisuuksia, kuten kirjan_nimi, hinta jne. Sen sijaan, että luodaan muuttujia jokaiselle, liittoa voidaan käyttää tiivistämään kaikki eri tietotyypit yhdeksi yksiköksi liiton avulla. Se määritellään avainsanalla 'union'. Seuraava luo johdetun data unioni -kirjan.

unionBook

char nimi [20];

kaksinkertainen hinta;

;

Edellä mainitulle liitokselle muuttujat voidaan ilmoittaa seuraavasti.

liitto Kirjakirja1, kirja2;

Unionin jäseniin pääsemiseksi on kaksi tapaa. Toisin sanoen käyttämällä jäsenoperaattoria (.) Ja rakenneosoittimen operaattoria (->). Jäseniin pääsee käyttämällä union_variable_name. jäsen nimi. Jos ohjelmoija haluaa käyttää kirjan1 nimeä, hän voi kirjoittaa lausunnon printf (kirjan1.nimi);

Katso alla oleva ohjelma liiton kanssa.

Kuva 02: C-ohjelma liittoa käyttämällä

Edellä mainitun ohjelman mukaan Kirja on liitto. Book1 on tyyppiyhdisteen muuttuja. Nimi ja hinta ovat määritetyt arvot. Unionissa vain yhteen jäsenistä voidaan päästä kerrallaan, ja kaikilla muilla jäsenillä on roskiarvoja. Id-arvo ei tulostu kunnolla, mutta hinta-arvo tulostaa oikein.

Kuva 03: Modifioitu C-ohjelma liitoksella

Edellä mainitun ohjelman mukaan Kirja on liitto. Book1 ja book2 ovat unionityyppisiä muuttujia. Ensin määritetään kirjan1 nimen arvo ja se tulostetaan. Sitten kirjan2 nimen nimi määritetään ja se tulostetaan. Kaikki jäsenet tulostavat oikein, koska yhtä jäsentä käytetään kerrallaan. Unionin tallentamiseen tarvittava muisti on liitoksen suurimman osan tarvitsema muisti. Yllä olevassa ohjelmassa nimimuuttuja on 20 tavua. Se on suurempi kuin hinta. Joten unionin muistivaraus on 20 tavua.

Mitkä ovat rakenteen ja unionin väliset yhtäläisyydet C: ssä??

  • Sekä rakenne että unioni C: ssä ovat käyttäjän määrittelemiä tietotyyppejä.
  • Sekä rakennetta että unionia C: ssä voidaan käyttää eri tietotyyppien tallentamiseen samaan muistipaikkaan.

Mikä on rakenteen ja unionin ero C: ssä??

Rakenne vs unioni C: ssä

Rakenne on käyttäjän määrittelemä tietotyyppi C-kielellä, joka mahdollistaa erityyppisten tietojen yhdistämisen toisiinsa. Union on käyttäjän määrittelemä tietotyyppi C-kielellä, joka mahdollistaa erityyppisten tietojen yhdistämisen toisiinsa.
 saavutettavuus
Rakenteessa kaikkiin sen jäseniin pääsee milloin tahansa. Liitossa vain yksi sen jäsenistä voidaan käyttää kerrallaan ja kaikki muut jäsenet sisältävät roskien arvot.
Muistin allokointi
Rakennemuuttujan tallentamiseksi tarvittava muisti on kaikkien jäsenten muistikokojen summaus. Liitosmuuttujan tallentamiseksi tarvittava muisti on liitoksen suurimmalle elementille vaadittava muisti.
 avainsana
Rakenteen määrittelemiseen käytetty avainsana on 'struct'. Unionin määrittelemiseen käytetty avainsana on 'unioni'.

Yhteenveto - Rakenne vs liitto julkaisussa C

Matriisia käytetään samantyyppisten tietoelementtien tallentamiseen. Joskus on tarpeen tallentaa erityyppisiä dataelementtejä samaan muistipaikkaan. C-ohjelmointikieli tarjoaa rakenteen ja liiton tämän tehtävän suorittamiseksi. Molemmat ovat käyttäjän määrittelemiä tietotyyppejä. Rakennemuuttujan tallentamiseksi tarvittava muisti on kaikkien jäsenten muistikokojen summaus. Liitosmuuttujan tallentamiseksi tarvittava muisti on liitoksen suurimmalle elementille vaadittava muisti. Tämä on ero rakenteen ja liitoksen välillä C: ssä.

Viite:

1.Piste, oppaat. “Structures in C.”, Tutorials Point, 15. elokuuta 2017. Saatavilla täältä 
2.Piste, oppaat. "Liitot C." , Tutorials Point, 15. elokuuta 2017. Saatavilla täältä