Tärkein ero - rakenne vs. unioni C: ssä
Taulukko on C-kielellä tuettu rakenne. Taulukkoa voidaan käyttää samantyyppisten tietoelementtien tallentamiseen. Jos int-merkkeinä on lause [10]; sitten merkit ovat taulukko, johon voi tallentaa kymmenen merkkiä ja jotka kaikki ovat kokonaislukuja. Joskus vaaditaan erityyppisten tietoelementtien tallentamista samaan muistipaikkaan. Esimerkiksi työntekijällä voi olla työntekijätunnus, nimi, osasto, ikä jne. Heillä on erityyppisiä tietoja. Siksi on oltava menetelmä erilaisten tietoelementtien tallentamiseksi yhtenä yksikkönä. C: n rakenteita ja liittoja käytetään erityyppisten tietoelementtien tallentamiseen samaan muistipaikkaan. Rakenne ja liitos ovat samanlaisia, mutta ne eroavat toisistaan pääasiassa muistin allokoinnin vuoksi. Rakennemuuttujan tallentamiseen tarvittava muisti on kaikkien jäsenten muistikoon summa. Unionimuuttujan tallentamiseen tarvittava muisti on unionin suurimmalle elementille tarvittava muisti. Tämä on tärkein ero rakenteen ja liiton välillä C. Tässä artikkelissa käsitellään rakenteen ja liiton eroa C.
SISÄLLYS
1. Yleiskatsaus ja keskeinen ero
2. Mikä on rakenne C: ssä
3. Mikä on unioni C: ssä
4. Rakenteen ja Unionin yhtäläisyydet C: ssä
5. Vertailu rinnakkain - Rakenne vs Union C: ssä taulukkomuodossa
6. Yhteenveto
Mikä on rakenne C: ssä?
Rakenne on käyttäjän määrittelemä tietotyyppi C: ssä. Se auttaa yhdistämään erityyppisiä tietoeriä. Rakenne voi edustaa tietueita. Opiskelijalla voi olla opiskelijan_tunnus, opiskelijan_nimi jne. Sen sijaan, että kukin muuttuja tallennettaisiin erikseen, kaikki nämä eri tietoerät voivat olla kompakteja yhdeksi yksiköksi rakenteen avulla. Se määritellään avainsanalla 'struct'. Rakenteessa kaikkiin sen jäseniin pääsee milloin tahansa, seuraavalla luodaan johdettu tietotyyppi struct Student.
struct Opiskelija {
intstudent_id;
char opiskelijanimi [20];
};
Edellä olevaa rakennetta varten muuttujat voidaan ilmoittaa seuraavasti.
struct Opiskelija1, opiskelija2, opiskelija3;
Rakenteen jäsenille on kaksi tapaa. Tämä tapahtuu käyttämällä jäsenoperaattoria (.) Ja rakenneosoitinoperaattoria (->). Jäseniä voi käyttää strukturimuuttujan_nimellä. jäsen nimi. Jos ohjelmoija haluaa käyttää opiskelijan 2 nimeä, hän voi kirjoittaa lauseen muodossa printf (opiskelija2.opiskelijan_nimi);
Katso alla olevaa ohjelmaa rakenteeltaan.
Kuva 01: C-ohjelma rakenteilla
Yllä olevan ohjelman mukaan Opiskelija on rakenne. Se sisältää student_id ja student_name. Kaksi rakennetyyppistä muuttujaa ilmoitetaan pääohjelmassa. Niitä kutsutaan opiskelija1 ja opiskelija2. Student1: n tunnukselle määritetään arvo 1 käyttämällä jäsenoperaattoria nimellä student1.student_id = 1. Nimi “Ann” on merkkijono. Siksi se kopioidaan student_name-jäsenelle käyttämällä merkkijonokopiointitoimintoa strcpy. Tunnus ja nimi määritetään opiskelijalle2 samalla tavalla. Lopuksi nämä arvot tulostetaan jäsenoperaattorilla.
Rakennemuuttujan tallentamiseen tarvittava muistimäärä on kaikkien jäsenten muistikoon summa. Student_id sisältää 4 tavua ja student_name sisältää 20 tavua (yksi tavu merkille). 24 tavua on rakenteen edellyttämän muistikoon summa.
Mikä on unioni C: ssä?
Unioni on käyttäjän määrittelemä tietotyyppi C: ssä. Se auttaa tallentamaan erilaisia tietotyyppejä samaan muistipaikkaan. Kirjalla voi olla ominaisuuksia, kuten kirjan_nimi, hinta jne. Sen sijaan, että kullekin niistä luodaan muuttujia, liittoa voidaan käyttää kaikkien eri tietotyyppien tiivistämiseen yhdeksi yksiköksi liittoa käyttämällä. Se määritellään käyttämällä avainsanaa 'union', ja seuraava luo johdetun tietoyhteisökirjan.
unionBook {
char nimi [20];
kaksinkertainen hinta;
};
Edellä mainittua unionia varten muuttujat voidaan ilmoittaa seuraavasti.
Union Book Book1, book2;
Liittoon pääsemiseksi on kaksi tapaa. Tämä tapahtuu käyttämällä jäsenoperaattoria (.) Ja rakenneosoitinoperaattoria (->). Jäseniä voi käyttää käyttämällä unioni_muuttujan_nimi. jäsen nimi. Jos ohjelmoija haluaa käyttää kirjan1 nimeä, hän voi kirjoittaa lauseen muodossa printf (kirja1.nimi);
Katso alla olevaa ohjelmaa ammattiliiton kanssa.
Kuva 02: C-ohjelma yhdistämistä käyttäen
Edellä mainitun ohjelman mukaan kirja on liitto. Book1 on tyypin yhdistelmän muuttuja. Nimi ja hinta määritetään. Unionissa vain yksi sen jäsenistä on käytettävissä kerrallaan, ja kaikilla muilla jäsenillä on roskat. Id-arvo ei tulostu oikein, mutta hinta-arvo tulostuu oikein.
Kuva 03: Muokattu C-ohjelma liitoksella
Yllä olevan ohjelman mukaan Book on liitto. Kirja1 ja kirja2 ovat unionityyppisiä muuttujia. Ensin määritetään book1-nimen arvo ja se tulostetaan. Sitten kirja2-nimelle määritetään arvo ja se tulostetaan. Kaikki jäsenet tulostavat oikein, koska yhtä jäsentä käytetään kerrallaan. Unionin tallentamiseen tarvittava muisti on liiton suurimman osan tarvitsema muisti. Yllä olevassa ohjelmassa nimimuuttuja on 20 tavua. Se on suurempi kuin hinta. Joten muistin allokointi unionille on 20 tavua.
Mitkä ovat rakenteen ja unionin yhtäläisyydet C: ssä?
- Sekä Structure että Union C: ssä ovat käyttäjän määrittämiä tietotyyppejä.
- Sekä Struktuuria että Unionia C: ssä voidaan käyttää erilaisten tietotyyppien tallentamiseen samaan muistipaikkaan.
Mikä on rakenteen ja liiton ero C: ssä?
Erilainen artikkeli keskellä taulukkoa
Rakenne vs. unioni C: ssä |
|
Rakenne on käyttäjän määrittelemä tietotyyppi C-kielellä, joka mahdollistaa erityyppisten tietojen yhdistämisen yhdessä. | Union on käyttäjän määrittelemä tietotyyppi C-kielellä, jonka avulla voidaan yhdistää erityyppisiä tietoja yhteen. |
Esteettömyys | |
Rakenteessa kaikki sen jäsenet ovat käytettävissä milloin tahansa. | Unionissa vain yksi sen jäsenistä on käytettävissä kerrallaan, ja kaikki muut jäsenet sisältävät roska-arvoja. |
Muistin allokointi | |
Rakennemuuttujan tallentamiseen tarvittava muisti on kaikkien jäsenten muistikoon summa. | Unionimuuttujan tallentamiseen tarvittava muisti on unionin suurimmalle elementille tarvittava muisti. |
Avainsana | |
Rakenteen määrittelyssä käytetty avainsana on 'struct'. | Unionin määrittelyssä käytetty avainsana on 'unioni'. |
Yhteenveto - rakenne vs. unioni C: ssä
Taulukkoa käytetään samantyyppisten tietoelementtien tallentamiseen. Joskus on tarpeen tallentaa erityyppisiä tietoelementtejä samaan muistipaikkaan. C-ohjelmointikieli tarjoaa rakenteen ja liiton tämän tehtävän suorittamiseen. Molemmat ovat käyttäjän määrittämiä tietotyyppejä. Rakennemuuttujan tallentamiseen tarvittava muisti on kaikkien jäsenten muistikoon summa. Unionimuuttujan tallentamiseen tarvittava muisti on unionin suurimmalle elementille tarvittava muisti. Tämä on ero rakenteen ja liiton välillä C.