Es gibt offsetof
Makro und sizeof
-Operator für Strukturen und Klassen.
Gibt es eine Möglichkeit eine ähnliche Funktionalität für Bitfelder zu erhalten, so dass die Bit und Größe Bitoffset von Bitfeld Mitglieder abgefragt werden können?offsetof und sizeof wie Funktionalität für Bitfelder
Die sizeof
könnte mit #define field_name_size n
emuliert, aber für offsetof
Ich fürchte, es wäre zu umständlich geworden #define field_name_offset
, zu verwenden, da dann scheint eine etwas komplexe Formel zu verwenden, zu haben für alle vorhergehenden Mitglieder im Bitfeld berücksichtigen.
In bestimmten Fällen würde man die Notwendigkeit überwinden, den Code manuell mit Bitfelddefinitionen synchron zu halten, was fehleranfällig ist.
Ein Beispiel wären verblockte Schreibvorgänge an Mitglieder von Bitfeldern, wo man eine benutzerdefinierte Funktion zum Schreiben an solche Mitglieder verwenden muss, da der Compiler dies nicht anbietet.
Darüber hinaus verstehe ich, dass Compiler Bit-Feld-Layout ein bisschen anders implementieren können. Die Verfügbarkeit solcher Makros/Operatoren würde die Auswirkungen dieses Problems ebenfalls verringern.
_ "Gibt es eine Möglichkeit, eine ähnliche Funktionalität für Bitfelder zu erhalten, so dass Bit-Offset und Bit-Größe von Bit-Feld-Mitgliedern abgefragt werden können?" _ Mir ist das nicht bekannt. –
what @ πάνταῥεῖ sagt –
@Cheers So sind wir mindestens zwei ;-) ... –