這是位域操作的表示方法,也就是說后面加上“:1”的意思是這個成員的大小占所定義類型的1 bit,“:2”占2 bit,依次類推.當然大小不能超過所定義類型包含的總bit數(shù).
一個bytes(字節(jié))是8 bit(bit).例如你的結構中定義的類型是u_char,一個字節(jié),共8bit,最大就不能超過8.
32位機下,
short是2字節(jié),共16bit,最大就不能超過16.
int是4字節(jié),共32bit,最大就不能超過32.
依次類推.
這樣定義比較省空間.例如你上面的結構,定義的變量類型是u_char,是一字節(jié)類型,即8bit.
fc_subtype占了4bit,fc_type占2bit,fc_protocol_version占2bit,共8bit,正好是一個字節(jié).
其他八個成員,各占1bit,共8bit,正好也是一個字節(jié).
因此你的結構的大小如果用sizeof(struct frame_control)計算,就是2bytes.
struct定義中在成員后面加冒號“:
struct定義中在成員后面加冒號“:
typedef unsigned char u_char;
struct frame_control {
u_char fc_subtype :4;
u_char fc_type :2;
u_char fc_protocol_version :2;
u_char fc_order :1;
u_char fc_wep :1;
u_char fc_more_data :1;
u_char fc_pwr_mgt :1;
u_char fc_retry :1;
u_char fc_more_frag :1;
u_char fc_from_ds :1;
u_char fc_to_ds :1;
};
里面成員定義中加:
typedef unsigned char u_char;
struct frame_control {
u_char fc_subtype :4;
u_char fc_type :2;
u_char fc_protocol_version :2;
u_char fc_order :1;
u_char fc_wep :1;
u_char fc_more_data :1;
u_char fc_pwr_mgt :1;
u_char fc_retry :1;
u_char fc_more_frag :1;
u_char fc_from_ds :1;
u_char fc_to_ds :1;
};
里面成員定義中加:
其他人氣:811 ℃時間:2019-08-20 15:14:26
優(yōu)質(zhì)解答
我來回答
類似推薦
猜你喜歡
- 1都有哪些東西可以和速度快或是加快速度有聯(lián)系的(物品,事件,詞語,現(xiàn)象等)希望盡量全面些哦!
- 2英語動詞填空what he said _______(record) just now. We can listen to it again.
- 3服裝廠生產(chǎn)襯衫,上半月完成計劃的45%,下半月比上半月多生產(chǎn)350件,剛好完成任務.
- 4Tim was very______because many friends came to his birthday party.
- 5we moved to Canada in 2008變成否定句
- 6澄清石灰水中加鹽酸的離子方程式是?
- 7I think that it's a useful to learn a foreign-language.
- 8世界上有多少種字典?有多少種查字典的方法?應該怎樣查?
- 9如果A>0,B>0,那么A+B>0 的逆命題,是真是假
- 10一個多邊形除了一個內(nèi)角外,其余各內(nèi)角之和為1680°,那么這個多邊形的邊數(shù)為_.
- 11鋁與硫酸鐵反應
- 12把下列句子整理成一段通頗的話,在括號里填上序號.快的加50分~