Navigation

2.2.3 Bitfelder

Bitfelder oder Bitstrukturen werden über Strukturelemente des Datentyps struct auf Teile eines Maschinenwortes abgebildet. Sie erlauben den symbolischen Zugriff auf Bits und stellen somit eine alternative Möglichkeit der Bitmanipulation dar. Allgemein gilt für die Vereinbarung von struct-Elementen:
typ bezeichner : konst_ausdruck
typ sollte immer unsigned sein !

Hinter dem Typ der Strukturkomponente (Bildfeld) wird der Name angegeben, feofolgt vom : und der Anzahl der Bits.

BEISPIELE/b223b.c: 

#include <stdio.h>

struct byte {
   unsigned bit_1 : 1;
   unsigned bit_2 : 1;
   unsigned rest : 6;
};

main()                                             /* Bitfelder */
{  
   struct byte b;

   b.bit_2 = b.bit_1 =1;
   b.rest = 63;
   printf("Bitfeld = %d\n", b);
   b.bit_1--;
   printf("Bit1=%d, Bit2=%d, Rest=%d\n",b.bit_1, b.bit_2, b.rest);
   if(b.bit_1 && b.bit_2)
      b.bit_1++;
   else
      b.bit_1--;
   b.rest&=(b.bit_1+b.bit_2);
   printf("Bit1=%d, Bit2=%d, Rest=%d\n",b.bit_1, b.bit_2, b.rest);
}

Navigation