有些資訊在儲存時,並不需要占用乙個完整的位元組而只需佔幾個或乙個二進位制位,如協議包頭。因此為了節省儲存空間並使處理簡便,c語言又提供了一種資料結構,稱為「位域」或「位段」。
所謂「位域」是把乙個位元組中的二進位劃分為幾個不同的區域,並說明每個區域的位數。每個域有乙個網域名稱,允許在程式中按網域名稱進行操作。這樣就可以把幾個不同的物件用固定位元組的二進位制位域來表示。
//位域結構體定義:
struct 位域結構名 ;
例子如下所示:
//例如:
struct bs data;
//說明:data為bs變數,其中位域a佔8位,位域b佔2位,位域c佔6位 (乙個位元組8位)
C C struct 結構體定義 用法詳解
在c語言中,定義乙個結構體型別要用typedef typedef struct point point 在宣告變數的時候就可以 point p1 如果沒有typedef,如 struct point 在宣告變數的時候就必須用 struct point p1 point是struct point的別名...
C 中結構體的宣告
定義 結構是使用者自定義的值型別 樣式 struct pair struct pair struct pair 可以有結尾分號 注意事項 結構是c 程式設計師用來定義自己的值型別的最普遍的機制。結構比列舉更強大,因為它提供函式 字段 建構函式 操作符和訪問控制。結構成員的預設訪問許可權是privat...
結構體的優化宣告
宣告乙個結構體的時候,因為考慮到記憶體的對齊。例如,int型的變數,需要4個位元組,那麼它在儲存的時候就需要在位址能夠被4個位元組整除的地方開始申請。例如我們申請下面這樣的乙個結構體 struct node1 在記憶體分配的時候,char佔乙個位元組,int 佔四個位元組。c語言在進行記憶體分配的時...