位域是指信息在存儲時,並不須要佔用一個完整的字節, 而只需佔幾個或一個二進制位。所謂「位域」是把一個字節中的二進位劃分爲幾 個不一樣的區域, 並說明每一個區域的位數。每一個域有一個域名,容許在程序中按域名進行操做。 這樣就能夠把幾個不一樣的對象用一個字節的二進制位域來表示。web
例如:在存放一個開關量時,只有0和1 兩種狀態, 用一位二進位便可。爲了節省存儲空間,並使處理簡便,C語言又提供了一種數據結構,稱爲「位域」或「位段」。數據結構
位域的定義和位域變量的說明與結構相仿,其形式爲:spa
struct 位域結構名 { 位域列表 };
eg:struct weiyu { int a:2; int b:5; int :5; //此五位爲空域,不能使用
int c:4; };
定義變量: struct weiyu bianliang;說明bianliang爲weiyu變量,共佔2個字節,其中位域a佔2位,b佔5位。
注意事項:
1. 一個位域必須存儲在同一個字節中,不能跨兩個字節。如一個字節所剩空間不夠存放另外一位域時,應從下一單元起存放該位域。也能夠有意使某位域從下一單元開始。