/************************/
/* soubor STRUCT01.C */
/* ukazka struct */
/************************/
#include <stdio.h>
#include <string.h>
#define ZNAKU_NAZEV 25
#define POLOZEK_ZBOZI 10
#define FORMAT_VYROBEK "cislo:%5d pocet:%5d cena:%10.2f nazev:%s\n"
typedef
struct {float re, im;} complex;
typedef
struct {
int ev_cislo;
char nazev[ZNAKU_NAZEV + 1];
int na_sklade;
float cena;
} vyrobek;
typedef vyrobek zbozi[POLOZEK_ZBOZI];
int main(void)
{
complex cislo, im_jednotka = {0, 1};
zbozi polozky;
vyrobek *ppolozky,
a = {8765, "nazev zbozi na sklade", 100, 123.99};
cislo.re = 12.3456;
cislo.im = -987.654;
polozky[0].ev_cislo = 0;
strcpy(polozky[0].nazev, "polozka cislo 0");
polozky[0].na_sklade = 20;
polozky[0].cena = 45.15;
ppolozky = polozky + 1;
ppolozky->ev_cislo = 1;
/* (*ppolozky).ev_cislo = 1; */
strcpy(ppolozky->nazev, "polozka cislo 1");
ppolozky->na_sklade = 123;
ppolozky->cena = 9945.15;
printf("re = %10.5f im = %10.5f\n", im_jednotka.re, im_jednotka.im);
printf("re = %10.5f im = %10.5f\n", cislo.re, cislo.im);
printf(FORMAT_VYROBEK, a.ev_cislo, a.na_sklade, a.cena, a.nazev);
printf(FORMAT_VYROBEK, polozky[0].ev_cislo, polozky[0].na_sklade,
polozky[0].cena, polozky[0].nazev);
printf(FORMAT_VYROBEK, ppolozky->ev_cislo, ppolozky->na_sklade,
ppolozky->cena, ppolozky->nazev);
return 0;
}