C位域定義

2021-10-10 08:19:46 字數 453 閱讀 6653

struct name

;

該種形式出現於結構體或共用體的定義中,是位域定義的標準形式。

含義為,在結構體name中,成員變數var_name占用空間為n位

n為正整數,其值必須小於type型別占用的位數。比如type如果是int,佔4位元組32位,那麼n必須是1~31之間的整數。

對於位域型別的成員,在賦值時如果實際值超過n位所能表達的範圍,那麼超出部分將會被截掉,只儲存低位值。如int var:4,本身只有4位的空間,如果賦值var = 20, 由於20的二進位制值為10100,實際為五位,這時var實際被賦值的就是低四位,0100,即4。

由於c語言中的位址是針對位元組計算的,所以位域型別的成員變數不支援取位址操作,即對於變數a, 如果存在位域成員變數var,那麼&a.var是非法的,編譯會出錯。

位域 struct 定義

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

C C 位域定義

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

C語言位域

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