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:
- RZ (registrační značka, dříve SPZ)
- brand (značka vozu)
- engineType (typ motoru – ‚N‘ pro naftu, ‚B‘ pro benzin, ‚E‘ pro elektrovůz)
- consumption (spotřeba na 100 km)
- productionYear (rok výroby)
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);
}