Hopsel: C - Pointer-Arithmetik Problem

Beitrag lesen

Hi Der!

Wieso arbeitest du dann nicht mit einer solchen Struktur?
... und einem typisierten Zeiger auf diese Struktur anstatt einem void* ?

Das ist m.E. selbstverständlich.

Es ist in C durchaus möglich Zeiger zu inkrementieren bzw. bitweise zu erhöhen. [1]
Nein, nicht bitweise. C kann als kleinste Einheit ein Byte (char) adressieren.

Ja, das dachte ich mir schon. Nichtsdestotrotz sind die einzelnen Bits eines Bytes einfacher zu verwalten, als die eines 64bit-Wortes. :)

Ja, ich weiß: In structs kann man Felder definieren, die kleiner als ein Byte sind und nicht einmal an Bytegrenzen beginnen bzw. enden müssen:
typedef struct
{ int status:3;
   int command:3;
   int count:12;
} CTRLWORD;

Das ist mir vollkommen neu. Wie setzt der Compiler das denn um? Gehört es zum ANSI-C-Standard?

Damit deklariere ich eine gepackte Struktur von insgesamt 16bit (1 WORD) Länge [...]

12+3+3 sind doch 18. Hast du einen Fehler gemacht oder habe ich das falsch verstanden?

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)