C語言 位域

2021-09-30 14:17:20 字數 401 閱讀 1043

所謂位域,就是把儲存空間中的二進位制位劃分為幾個不同的區域,並說明每個區域的位數,每個域有乙個網域名稱,允許在程式中按網域名稱進行操作。

struct 位域結構名;
計算位域結構體所佔位元組大小的規則:

(1)當相鄰位域的型別相同時,如果其位寬之和小於該型別所占用的位寬大小,那麼後面的位域緊鄰前面的位域儲存,直到不能容納為止。

(2)如果位寬之和大於型別所占用的位寬大小,那麼就從下乙個儲存單元開始存放。

(3)如果相鄰位域的型別不同,不同編譯器的處理方式可能有所不同,vc++6.0的規則是:

用上面這種方式可以來指定採用2位元組對齊,此時位域結構所占用的記憶體空間必須是2的整數倍。

C語言位域

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

C語言位域

1.乙個位域必須儲存在同乙個位元組中,不能跨兩個位元組。如乙個位元組所剩空間不夠存放另一位域時,應從下一單元起存放該位域。也可以有意使某位域從下一單元開始。例如 struct bs 在這個位域定義中,a佔第一位元組的 2位,後6位填 0表示不使用,c 從第二位元組開始,占用1位 2.由於位域不允許跨...

C語言 位域

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