用於按位訪問字節/字的多個位,比位運算符更方便。語法:
struct 位結構名 {
數據類型 變量名: 位寬;
數據類型 變量名: 位寬;
} 位結構變量;
int(signed 或 unsigned)。struct {
unsigned incon: 8; // 低字節 0-7 位
unsigned txcolor: 4; // 高字節 0-3 位
unsigned bgcolor: 3; // 高字節 4-6 位
unsigned blink: 1; // 高字節第 7 位
} ch;
訪問方式同普通結構:ch.bgcolor。
unsigned(單位無符號)。->)。struct info {
char name[8];
int age;
struct addr address;
float pay;
unsigned state: 1; // 工人狀態
unsigned paid: 1; // 工資發放標志
} workers;
兩個 1 位位域僅佔 1 字節,卻保存兩項關鍵信息,大幅壓縮存儲開銷。