2022.03 Štruktúry
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška vysvetľuje, prečo si programátor nevystačí s primitívnymi údajovými typmi, a predstavuje štruktúry (struct) v jazyku C ako spôsob opisu zložitejších objektov, napríklad osoby s menom, priezviskom, vekom či pohlavím. Štruktúra je podobná rekordu v Pascale alebo tabuľke v relačnej databáze. Ďalej sa venuje kľúčovému slovu typedef, ktoré vytvára alias existujúceho typu, a vysvetľuje, prečo ho napríklad vývojári jadra Linuxu nepoužívajú: znižuje čitateľnosť kódu. Ukazuje typ size_t z hlavičky stddef.h ako príklad aliasu a využíva ho pre vek. Na záver ukazuje zisťovanie veľkosti štruktúry v pamäti pomocou sizeof, pričom súčet členov (59 bajtov) sa líši od skutočnej veľkosti (64 bajtov) kvôli zarovnaniu pamäte kompilátorom, ktoré možno potlačiť atribútom packed.
- - Štruktúra (struct) zoskupuje viac položiek rôznych typov do jedného údajového typu, podobne ako rekord v Pascale alebo riadok tabuľky v databáze.
- - Štruktúra sa definuje kľúčovým slovom struct, názvom a zloženými zátvorkami s členmi; premenná sa deklaruje ako struct person john.
- - Typedef vytvára alias pre existujúci typ, no skrýva skutočný typ a znižuje čitateľnosť, preto sa v predmete používa explicitný zápis so struct.
- - Typ size_t (z stddef.h, dostupný aj cez stdio.h) je alias pre unsigned integer vhodný pre dĺžky, indexy a vek; pri printf sa vypisuje cez %lu alebo %ld.
- - Veľkosť štruktúry možno spočítať ako súčet veľkostí členov (20 + 30 + 1 + 8 = 59 bajtov).
- - Operátor sizeof na celú štruktúru vráti 64 bajtov, pretože kompilátor údaje v pamäti zarovnáva, aby sa s nimi pracovalo jednoduchšie.
- - Zarovnanie možno potlačiť atribútom packed pridaným k štruktúre.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky