位域的用法

2021-07-25 22:04:58 字數 670 閱讀 3918

位域是指資訊在儲存時,並不需要占用乙個完整的位元組, 而只需佔幾個或乙個二進位制位。例如在存放乙個開關量時,只有0和1 兩種狀態, 用一位二進位即可。為了節省儲存空間,並使處理簡便,c語言又提供了一種資料結構,稱為「位域」或「位段」。所謂「位域」是把乙個位元組中的二進位劃分為幾 個不同的區域, 並說明每個區域的位數。每個域有乙個網域名稱,允許在程式中按網域名稱進行操作。 這樣就可以把幾個不同的物件用乙個位元組的二進位制位域來表示。

位域定義和結構體相仿

例如:struct bs

data;//佔兩個位元組

①乙個位域必須儲存在同乙個位元組中,不能跨兩個位元組。如乙個位元組所剩空間不夠存放另一位域時,應從下一單元起存放該位域。也可以有意使某位域從下一單元開始。

struct bs

在這個位域定義中,a佔第一位元組的4位,後4位填0表示不使用,b從第二位元組開始,占用4位,c占用4位。

②由於位域不允許跨兩個位元組,因此位域的長度不能大於乙個位元組的長度,也就是說不能超過8位二進位。

③位域可以無位網域名稱,這時它只用來作填充或調整位置。無名的位域是不能使用的。例如:

struct k

;總結:從以上分析可以看出,位域在本質上就是一種結構體型別, 不過其成員是按二進位分配的。

位域的用法

struct a 位域是指資訊在儲存時,並不需要占用乙個完整的位元組,而只需佔幾個或乙個二進位制位。例如在存放乙個開關量時,只有0和1 兩種狀態,用一位二進位即可。為了節省儲存空間,並使處理簡便,c語言又提供了一種資料結構,稱為 位域 或 位段 所謂 位域 是把乙個位元組中的二進位劃分為幾 個不同的...

位域的用法

在結構內宣告位域的形式如下 struct type 整數型別,決定了如何解釋位域的值。型別可以是整型 有符號整型 無符號整型。member name 位域的名稱。width 位域中位的數量。寬度必須小於或等於指定型別的位寬度。帶有預定義寬度的變數被稱為位域。位域可以儲存多於 1 位的數,例如,如果需...

C語言之位域的概念和用法

先來個位域申明 struct元素 描述type 整數型別,決定了如何解釋位域的值。型別可以是整型 有符號整型 無符號整型。member name 位域的名稱。width 位域中位的數量。寬度必須小於或等於指定型別的位寬度。帶有預定義寬度的變數被稱為位域。位域可以儲存多於 1 位的數,例如,需要乙個變...