Hallo,
ich habe die nachfolgende Struktur und mir ist wichtig, dass die
Variablen dann auch tatsächlich genau so im Speicher angeordnet werden.
Richtiger weise schreibt meine 32-Bit-CPU die erste Variable (bfType) ab
Adresse "Null". Diese Zahl ist dann 2 Byte lang.
Was ich nicht möchte ist, dass sie die nächsten 2 Byte einfach links
liegen lässt (was aber der Fall ist).
Erst die danach folgenden 4 Bytes bekommen Werte meiner Variable bfSize
zugewiesen.
1 | typedef struct
|
2 | {
|
3 | unsigned short bfType;
|
4 | unsigned int bfSize;
|
5 | unsigned short bfReserved1;
|
6 | unsigned short bfReserved2;
|
7 | unsigned int bfOffBits;
|
8 | } myStruc_t;
|
Gibt es eine Möglichkeit die CPU (bzw. den compiler) dazu zu zwingen,
dass er meine zweite Variable (bfSize) auf jedem Fall an der dritten
Byteadresse speichern muss?
Bitfelder zu definieren bringt ja auch nichts, da die vom compiler
angeordnet werden dürfen wie er möchte.