結構體定義裡的冒號

2021-06-18 16:48:21 字數 579 閱讀 2492

如下:    

[cpp]view plain

copy

struct

frame_control ;  

這是位域操作的表示方法,也就是說後面加上「:1」的意思是這個成員的大小佔所定義型別的1 bit,

「:2」佔2 bit,依次類推。當然大小不能超過所定義型別包含的總bit數。

乙個bytes(位元組)是8 bit(bit)。例如你的結構中定義的型別是u_char,乙個位元組,共8bit,最大就不能超過8。

32位機下,short是2位元組,共16bit,最大就不能超過16。int是4位元組,共32bit,最大就不能超過32。依次類推。

這樣定義比較省空間。例如上面的結構,定義的變數型別是u_char,是一位元組型別,即8bit。

fc_subtype佔了4bit,fc_type佔2bit,fc_protocol_version佔2bit,共8bit,正好是乙個位元組。

其他八個成員,各佔1bit,共8bit,正好也是乙個位元組。

因此結構的大小如果用sizeof(struct frame_control)計算,就是2bytes.

結構體中的冒號

題目 struct a sizeof a 不考慮邊界對齊 7,如果考慮邊界對其,則為8 有些資訊在儲存時,並不需要占用乙個完整的位元組,而只需佔幾個或乙個二進位制位。例如在存放乙個開關量時,只有0和1 兩種狀態,用一位二進位即可。為了節省儲存空間,並使處理簡便,c語言又提供了一種資料結構,稱為 位域...

結構體中的冒號

題目 struct a sizeof a 不考慮邊界對齊 7,如果考慮邊界對其,則為8 有些資訊在儲存時,並不需要占用乙個完整的位元組,而只需佔幾個或乙個二進位制位。例如在存放乙個開關量時,只有0和1 兩種狀態,用一位二進位即可。為了節省儲存空間,並使處理簡便,c語言又提供了一種資料結構,稱為 位域...

結構體中冒號的作用

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