C/Tietueet

Wikikirjastosta
< C

Tämä luku kertoo C:n tietueista.

Tietue on C-kielessä tapa koota useampia tietoalkioita yhdeksi loogiseksi kokonaisuudeksi. Tietue määritellään varatulla sanalla struct, jota seuraa tietueen nimi, sekä lueteltuna tietueen kentät.

Tietueen määritteleminen[muokkaa | muokkaa wikitekstiä]

Määritellään uusi tietotyyppi 2d-avaruudessa sijaitsevaa pistettä varten:

struct point 
{
    double x;
    double y;
};

Pistettä voidaan käyttää seuraavasti:

double distance;
struct point p1;
struct point p2;

p1.x = 1.1;
p1.y = 2.2;

p2.x = 3.3;
p2.y = 4.4;

distance = sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y));

Tietueen kenttiin viitataan siis . - operaattoria käyttäen.

Tietueet ja abstraktit tietotyypit[muokkaa | muokkaa wikitekstiä]

Tietueiden avulla voidaan C-kielessä muodostaa abstrakteja tietotyyppejä (ADT = abstract data type). On hyödyllistä määritellä edellä esitetyn pisteen käyttöä varten omat funktionsa:

struct point pointConstruct(double x, double y)
{
    struct point p;
    p.x = x;
    p.y = y;
    return p;
}

double pointDistance(struct point p1, struct point p2)
{
    return sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y));
}

Huomaa, että funktioissa on käytetty etuliitteenä (prefix) tietotyypin nimeä. Tämä on hyvä käytäntö, sillä tällöin jo funktion nimestä käy ilmi mitä abstraktia tietotyyppiä varten se on tehty.

Funktioita voidaan käyttää yksinkertaisesti seuraavasti:

double distance;
struct point p1;
struct point p2;

p1 = pointConstruct(1.1, 2.2);
p2 = pointConstruct(3.3, 4.4);

distance = pointDistance(p1, p2);
C-ohjelmointikieli

EtusivuHistoriaTyökalut


Yksinkertainen C-kielinen ohjelmaMuuttujatAritmeettiset operaatiotKommentitOhjausrakenteetFunktiotOsoittimetDynaaminen muistinvarausTaulukotMerkkijonotTietueet


C-kielen varatut sanatStandardikirjastoAiheesta muualla