#include <stdio.h>
// Definition einer Struktur mit Bitfeldern
struct BitfieldExample {
unsigned int flag1 : 1; // 1 Bit für flag1
unsigned int flag2 : 1; // 1 Bit für flag2
unsigned int value : 4; // 4 Bits für value (kann Werte von 0 bis 15 speichern)
unsigned int reserved : 2; // 2 Bits reserviert
};
int main() {
struct BitfieldExample example;
// Initialisierung der Bitfelder
example.flag1 = 1;
example.flag2 = 0;
example.value = 9; // 9 ist im Bereich von 4 Bits (0-15)
example.reserved = 3; // 3 ist im Bereich von 2 Bits (0-3)
// Ausgabe der Werte
printf("Flag1: %u\n", example.flag1);
printf("Flag2: %u\n", example.flag2);
printf("Value: %u\n", example.value);
printf("Reserved: %u\n", example.reserved);
// Überschreiten des Bitbereichs
example.value = 16; // Überschreitet 4 Bits
printf("Value nach Überschreitung: %u\n", example.value); // Der Wert wird abgeschnitten
return 0;
}