位段 (bit field)也叫位域
位段的聲明和結構類似,但是它的成員是一個或多個位的字段,這些不同長度的字段實際上存儲於一個或多個整形變量中。
位段的聲明和任何普通成員聲明相同,有兩個例外:
1.位段成員必須聲明爲int ,signed int(有符號整型),unsigned int(無符號整型)
2.成員名後面是一個冒號和一個整數,這個整數指定該位段所佔用位的數目。
Eg:
#include<stdio.h> #include<stdlib.h> struct s { int i : 2; //佔2位 int j : 5; //佔5位 int k : 30; //佔30位 }; int main() { printf("%d\n", sizeof(struct s)); getchar(); return 0; }
運行結果:
8