WORD (=USHORT) = 32bit ?
Heute hatte ich ein interessantes Problem:
Ich wollte ein kleines Tool zum Schreiben von .DBF (DBASE) Dateien schreiben und habe daher
die Datenstrukturen entsprechend in einer Struktur definiert.
Als ich dann mittels sizeof()
die Größe der Struktur ermitteln wollte, war diese leider größer, als sie sein sollte. Die Struktur beinhaltete unter Anderem auch WORDs (=unsigned short), um 16bit-Werte zu repräsentieren. Diese sind auf einer 32bit-Architektur jedoch 32bit groß, was zu dieser Inkonsistenz führte.
Endlich weiß ich, wie man das Problem behebt:
#pragma pack(1)
Dadurch erfolgt die Ausrichtung der Größen entsprechend, sodass es eine lückenlose Speicherbelegung gibt.