G
Ich persönlich würde es ehrlich gesagt trotzdem nicht mit Bitfeldern machen. Auch wenn das keine Empfehlung für andere sein soll. Erstens ist dies nicht effizienter, weil ein Compiler dann auch nur das macht, was hier bereits als Beispiel "manuell" gemacht wurde. Klar, eine Plattform könnte theoretisch mit einer CPU ausgestattet sein, die nativen Zugriff auf Bits erlaubt. Das liegt dann aber sowieso ausserhalb des Standards, da die kleinste adressierbare Einheit ein Byte (also char) darstellt. Und zweitens, in deinem Beispiel werden Unions eher missbraucht, da sie eigentlich dafür gedacht sind, dass sich zwei oder mehr unabhängige Objekte den selben Speicher teilen, und nicht ein Objekt auf unterschiedliche Art und Weise angesprochen werden kann. IdR funktioniert das zwar, weil die Member einer Union an der selben Adresse beginnen. Es ist vom konzeptionellen Aspekt aber nicht ganz astrein.