初識位域

  位域是指信息在存儲時,並不須要佔用一個完整的字節, 而只需佔幾個或一個二進制位所謂「位域」是把一個字節中的二進位劃分爲幾 個不一樣的區域, 並說明每一個區域的位數。每一個域有一個域名,容許在程序中按域名進行操做。 這樣就能夠把幾個不一樣的對象用一個字節的二進制位域來表示。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. 一個位域必須存儲在同一個字節中,不能跨兩個字節。如一個字節所剩空間不夠存放另外一位域時,應從下一單元起存放該位域。也能夠有意使某位域從下一單元開始。
相關文章
相關標籤/搜索