#include /* tietueita voidaan määritellä globaalisti tai lokaalisti. nyt tarkoituksena on määritellä aliohjelmia, jotka käyttävät luotua tietuetta, joten se on määriteltävä globaalisti */ struct complex { /* aaltosulkeiden sisään kirjoitetaan tietueen kentät, eli tietojäsenet kuin tavalliset muuttujien määrittelyt */ double re; double im; }; /* huom: puolipiste */ /* juuri määritelty tietue voi olla aliohjelman palautusarvon tyyppi. muista kirjoittaa myös sana struct */ struct complex sum(struct complex z, struct complex w); struct complex product(struct complex z, struct complex w); main() { /* luodaan kompleksiluvut z,w,u ja v. tietueen tietojäsenet voidaan alustaa luomisen yhteydessä tai erikseen */ struct complex z={1.4,3.2},w,u,v; /* tietuemuuttujan kenttiin viitataan näin */ w.re=4.1; w.im=-11.2; u=sum(z,w); v=product(z,w); printf("z = %g + %gi\n",z.re,z.im); printf("w = %g + %gi\n",w.re,w.im); printf("z + w = %g + %gi\n",u.re,u.im); printf("z * w = %g + %gi\n",v.re,v.im); } struct complex sum(struct complex z, struct complex w) { struct complex y; y.re = z.re + w.re; y.im = z.im + w.im; return y; } struct complex product(struct complex z, struct complex w) { struct complex y; y.re = z.re*w.re-z.im*w.im; y.im = z.im*w.re+z.re*w.im; return y; }