Kindergärtner schrieb:
> Yalu X. schrieb:
>> Ob er funktioniert hängt von der
>> internen Darstellung der Bitfelder und dem überlagerten uint32_t ab.
> Das würde aber auch für jegliche andere Form von Direkt-Zugriff (ohne
> Bitfield) gelten (wie zB wildes casten).
Klar, das macht keinen großen Unterschied. Deswegen habe ich ihn ja
gefragt, warum er überhaupt mit solchen Tricks arbeiten will. Er kann
die Zuweisung der einzelnen Elemente ja auch über die Bitfelder machen.
Er könnte auch auf die Bitfelder (und die Struktur) komplett verzichten
und alle Operationen mit Bit-Arithmetik auf einem 32-Bit-Int machen. Nur
beide Methoden zu mischen ist weniger ratsam. Aber selbst das ist
möglich (Portabilität steht auf diesem hardwarenahen Level wohl kaum im
Vordergund), man muss es eben ausgiebig testen.
Ich habe das Beispiel auf dem PC getestet, da hat es schon einmal nicht
funktioniert, wenn man davon ausgeht, dass durch die beiden letzten
Anweisungen die Bit-Felder fm, fe, cdt, pcp, mux, pd1 und cr sowie pv
und pd2 beschrieben werden sollen.
> Wobei ich auch da lieber
> nochmal den Standard konsultieren würde, ob das für Bitfelder nicht
> vielleicht doch garantiert ist...!
Für Bitfelder ist im Standard fast nichts garantiert ;-)