嵌入式C開發中用到的位域結構體

2021-09-26 14:40:07 字數 528 閱讀 3969

存放乙個開關量或者其他開關狀態時,用一位二進位即可。為了減少嵌入式記憶體資源的開銷,可以使用位域進行定義,位域是c語言支援的一種資料結構,稱為「位域」或「位段」。「位域」是把乙個位元組中的每個位劃分為幾個不同的區域,並指明每個區域的位數。每個域有乙個網域名稱,允許在程式中按網域名稱進行操作。

定義乙個結構體源**如下:

typedef struct

uint32_t id;

struct sattr

uint8_t schl:4;   //終端傳送資料的頻點,

uint8_t rmsg:4;   //要讀取的報文的序號,從0開始表示第一條報文

}attr;用冒號:來指明占用的位數,本例中結構體attr定義為位域結構體,總共占用1位元組 schl=4bit rmsg=4bit

}pollmeterinfotype;

pollmeterinfotype s_tmeterinfo;

直接採用結構體呼叫方式即可,例如s_tmeterinfo.attr.schl。

嵌入式C高階筆記 結構體

在實際的處理物件中,有許多資訊是由多個不同型別的資料組合在一起進行描述,而且這些不同型別的資料是互相聯絡組成了乙個有機的整體。此時,就要用到一種新的構造型別資料 結構體 structure 簡稱結構。定義乙個結構型別的一般形式為 struct 結構體名 結構體屬於c語言的一種資料型別,與整型 實型相...

C結構體的位域

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

嵌入式開發中常用到的C語言庫函式

1.sprintf 函式原型 int sprintf char string,char format,argument,sprintf函式說明 字串格式化命令,主要功能是將格式化資料寫入某個字串中,即傳送格式化輸出到string所指向的字串。函式返回值 字串長度 eg sprintf s,s d c...