Jeśli zapisujesz więcej danych niż potrzeba, to czemu się dziwisz? Struktury nie mają tu nic do rzeczy, bo równie dobrze możesz zapisywać kilobajtową tablicę
char[] tylko po to, żeby zapisać jednoznakowy łańcuch. Równie nieefektywne a bez struktur.
W programowaniu obiektowym istnieje termin
serializacja - zapoznaj się z nim.
Struktura zawsze będzie miała maksymalny rozmiar określony przez zmienne (...)
Częściowo prawda. Rożmiar struktury nie będzie mniejszy niż suma wielkości pól, ale może być większy, jeśli wyrównanie struktury (
data structure alignment) jest większe od jednego bajta. Generalnie struktury, które mają być zapisywane do pliku (lub wysyłane poza aplikację, np. protokoły sieciowe) powinny być wyrównane do jednego bajta.