Programmiersprache C/C++

Bitfelder

Innerhalb von Strukturen ist die Deklaration von Bitfeldern möglich:
  integertyp [bezeichner] : konstanter_ausdruck
integertyp legt die Gesamtgröße des Bitfelds fest und steht für einen der vordefinierten Integertypen (short ... long), konstanter_ausdruck bestimmt die Länge eines einzelnen Bitfelds.
Mehrere hintereinander deklarierte Bitfelder werden vom Compiler zusammengefaßt, wobei namenlose Felder zur Ausrichtung verwendet werden können.

Das folgende Beispiel deklariert einen Strukturtyp cell, der ein Zeichen im Bildspeicher (DOS) zusammen mit seinem Attribut repräsentiert.
Der Compiler ordnet die einzelnen Bitfelder hintereinander an; aufgrund ihrer Deklaration als short unsigned int umfassen die Felder insgesamt 16 Bit:

  struct cell   
  {                                        /* Bit-Positionen    */
    short unsigned int character  : 8;     /* 00000000 ???????? */
    short unsigned int foreground : 3;     /* 00000??? 00000000 */
    short unsigned int intensity  : 1;     /* 0000?000 00000000 */
    short unsigned int background : 3;     /* 0???0000 00000000 */
    short unsigned int blink      : 1;     /* ?0000000 00000000 */
  };

  struct cell screen[25][80];         /* Bildspeicher im Textmodus */

Zurück zum Menü
Zurück zur vorigen Seite Weiter zur nächsten Seite

P. Böhme, 01.01.1996