Marcel: C - Pointer-Arithmetik Problem

Beitrag lesen

Hallo

typedef struct
{ int status:3;
   int command:3;
   int count:12;
} CTRLWORD;

Damit deklariere ich eine gepackte Struktur von insgesamt 16bit (1 WORD) Länge, wovon ich die untersten 3bit als status, die nächsten 3bit als command und die restlichen 12bit als count ansprechen kann, ohne im Sourcecode noch mit aufwendigen Bitoperation jonglieren zu müssen.
Das ist aber AFAIK in C das einzige Zugeständnis an Bit-Adressierung, und es wird vom Compiler auch wieder in eine Kombination aus BYTE/WORD/DWORD-Zugriff und Maskierung übersetzt. Man könnte das also auch "zu Fuß" programmieren, aber so ist es komfortabler.

Mhmmm...wenn ich nun den Pointer *p welcher auf einen Block von 64 MB Grösse zeigt erhalte, wie kann ich dann die ein solches Struct z.B. am Anfang des Blocks platzieren und dann z.B. in der Mitte des Speichers nochmals...?

Gruss Marcel