Tietue, struct
Tietue (struct) on erilaisten tietojen joukko, joka on yhdistetty yhden nimen alle. Tietueita käytetään tietokantojen yhteydessä, kun samaan tietojoukkoon täytyy tallettaa erityyppistä tietoa. Seuraavassa on esimerkki tietuemäärittelystä työntekijälle.
Code Block |
---|
struct TyontekijaTiedot { char Sukunimi[50]; char Etunimi[50]; char Sotu[15]; int Palkka; }; |
TyontekijaTiedot tietuerakenne voidaan ottaa käyttöön seuraavasti:
Code Block |
---|
struct TyontekijaTiedot Tyontekija; |
Nyt voidaan antaa työntekijälle nimi
Code Block |
---|
strcpy(Tyontekija.Sukunimi,"Jokunen"); |
ja palkka
Code Block |
---|
Tyontekija.Palkka=15000; |
Edellä olevassa tavassa on se ongelma, miten esitellä 1000 työntekijää? Seuraavassa kappaleessa on osittainen vastaus tähän.
Tietuetaulukot
Tietuetaulukon avulla voidaan esitellä monta tietuetta sisältävä tietokokonaisuus seuraavasti:
Code Block |
---|
struct Varastohyllyt { char Nimike[50]; int Kolliluku; }; int main() { int Paikka=0; struct Varastohyllyt Hylly[1000]; strcpy(Hylly[Paikka].Nimike,"Kossu"); Hylly[Paikka].Kolliluku=10; return 1; } |
Esitetty taulukkomäärittely soveltuu tapauksiin, joissa etukäteen tiedetään, kuinka monta jäsentä taulukkoon kuuluu. Osoittimien avulla voidaan käsitellä tietuetaulukoita joustavammin, palaamme niihin myöhemmin.
Union
union on vaihtoehtorakenne, jolla voidaan vaihtoehtoisesti tallettaa haluttuun tietueen kohtaan toisen tyyppistä tietoa, esim:
Code Block |
---|
union Luku // esitellään union: { int iArvo; double dArvo; }; void JokuFunktio() { struct Luku Eka,Toka; int iLuku=5; double dLuku=10.45; Eka.iArvo=iLuku; Toka.dArvo=dLuku; } |
Union tietueen osana
Sellaisissa tapaksissa, joissa samaan tietueen kenttään halutaan tallettaa erityyppistä tietoa,
unionia käytetään tietueen osana.
Code Block |
---|
struct TyontekTiedot { char sSukunimi[50]; char sEtunimi[50]; union ID { char sSotu[15]; int HenkiloID; }; int Palkka; } |