Was ist der Typ eines Bitfeldes?
Ich kann nirgendwo in der C-Norm finden, wo dies angegeben ist. Zum Beispiel in
struct { signed int x:1; } foo;
istfoo.x
ein Wert vom Typint
, oder etwas anderes? Es erscheint unnatürlich, wenn es sich um einen Wert vom Typ handeltint
da Sie keinen Wert vom Typ speichern könnenint
in ihm nur 0 oder -1, aber ich kann keine Sprache finden, die ihm einen anderen Typ zuweisen würde. Natürlich wird es in den meisten Ausdrücken zu befördertint
sowieso, aber der eigentliche typ macht bei c11 einen unterschied mit_Generic
, und ich kann im Standard keine Sprache finden, wie Bitfelder interagieren_Generic
entweder.