c語言中結構中的位域

2021-10-03 01:23:26 字數 362 閱讀 9561

結構中位域的型別必須是int,unsigned int,或signed int ,但是最好將位域宣告為signed int或unsigned int。位域有一條限制就是無法將&運算子用於位域 (還記得register關鍵字嗎),下面舉個例子將日期儲存在兩個位元組內,其中5位用於日,4位用於月,7位用於年:

struct data

;

還可簡化如下:

struct data

;

c語言允許省略位域的名字,未命名的位域常作為欄位間的填充,以保證其他位域儲存在適當位置。

c語言還允許位域的長度為零,這告訴編譯器下乙個位域在乙個儲存單元的起始位置對齊。

C語言中結構體的位域

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

C語言中位域

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

C語言 中結構體的位域(位段)

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