Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

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