struct 位域結構名 {
類型 位域名: 位數;
類型 位域名: 位數;
...
} 位域變量;
struct bs {
int a: 8;
int b: 2;
int c: 6;
} data; // 共 2 字節:a佔8位,b佔2位,c佔6位
unsigned :0 強制換行struct bs {
unsigned a: 4;
unsigned : 0; // 空域,填充剩餘 4 位,強制下一字節
unsigned b: 4; // 從第二字節開始
unsigned c: 4;
};
struct k {
int a: 1;
int : 2; // 2 位填充,不可用
int b: 3;
int c: 2;
};
位域本質是結構類型,成員按二進制位分配而非字節。適用場景:
&bs.a 非法)位域是系統級編程中精確控制內存佈局的利器,但需深諳編譯器行為與硬件特性。