Struktury

Doposud jsme pracovali pouze s izolovanými proměnnými, například:

int delka = 10;
int sirka = 5;

V praxi se ovšem často setkáváme se situacemi, kdy potřebujeme proměnné skládat do celků. V kapitole pole jsme se naučili skládat několik hodnot do jedné proměnné, například:

int znamky[] = {2, 1, 3, 1, 2, 1};

Tak jsme dosáhli toho, že pod jedním názvem proměnné můžeme mít uloženo několik známek.

Co ale udělat, chceme-li uložit několik různých informací k jednomu logickému celku?

Například pro auto bychom chtěli uložit vždy následující data:

To můžeme v programovacím jazyce C realizovat pomocí struktury. Struktura je uživatelsky definovaný datový typ, který umožňuje kombinovat různé datové typy do jednoho objektu. Každá struktura má svou vlastní sadu proměnných, nazývaných atributy, které lze jednotlivě manipulovat.

Takovou strukturu si musíme hned na začátku programu nadefinovat:

typedef struct{
  char RZ[8];
  char brand[32];
  char engineType;
  float consumption;
  int productionYear;   
} Car; 

Strukturu pak uvnitř hlavní funkce můžeme použít například takto:

void main(){
  Car auto1;
  strcpy(auto1.RZ, "8S42211");
  strcpy(auto1.brand, "AUDI");
  auto1.engineType = 'B';
  auto1.consumption = 6.5;
  auto1.productionYear = 2023;

  printf("Auto %s (znacka %s) ma motor %c se spotrebou %0.2f\n",
          auto1.RZ, auto1.brand, auto1.engineType, auto1.consumption);
}