Die Bedeutung von Doppelpunkten in Strukturdeklarationen
In C-Strukturdeklarationen können Doppelpunkte (:) gefolgt von ganzen Zahlen verwendet werden, um das Bit anzugeben Größe der Strukturmitglieder, wodurch deren Wertebereich begrenzt wird. Eine solche Syntax wird häufig zur Darstellung komprimierter Werte verwendet, wie im folgenden Beispiel gezeigt:
typedef struct { unsigned char a : 1; unsigned char b : 7; } tOneAndSevenBits;
In diesem Beispiel begrenzt der Doppelpunktoperator a auf ein Bit und b auf sieben Bits. Zusammen bilden sie einen 8-Bit-Wert. Diese Technik wird häufig verwendet, um auf komprimierte Daten zuzugreifen, wie zum Beispiel:
typedef struct { unsigned char leftFour : 4; unsigned char rightFour : 4; } tTwoNybbles;
Hier wird ein Byte in zwei 4-Bit-Nybbles aufgeteilt. Der C-Standard definiert diese Syntax in Abschnitt 9.6:
identifieropt attribute-specifieropt : constant-expression
Der konstante Ausdruck gibt die Bitgröße an. Es muss größer oder gleich Null sein und kann größer als der Typ des Bitfelds sein. In diesem Fall werden die zusätzlichen Bits zum Auffüllen verwendet.
Die Zuordnung und Ausrichtung von Bitfeldern wird durch die Implementierung definiert. Einige Maschinen verpacken sie von rechts nach links, andere von links nach rechts. Auf bestimmten Systemen können sie auch adressierbare Einheiten umfassen.
Das obige ist der detaillierte Inhalt vonWie geben Doppelpunkte Bitgrößen in C-Strukturdeklarationen an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!