❶ ::鍦╟++涓浠涔堟剰鎬
"::"鍦–++涓琛ㄧず浣滅敤鍩燂紝鍜屾墍灞炲叧緋匯"::"鏄榪愮畻絎︿腑絳夌駭鏈楂樼殑錛屽畠鍒嗕負涓夌嶏紝鍒嗗埆濡備笅錛
涓銆佷綔鐢ㄥ煙絎﹀彿錛
浣滅敤鍩熺﹀彿鈥::鈥滅殑鍓嶉潰涓鑸鏄綾誨悕縐幫紝鍚庨潰涓鑸鏄璇ョ被鐨勬垚鍛樺悕縐幫紝C++涓轟緥閬垮厤涓嶅悓鐨勭被鏈夊悕縐扮浉鍚岀殑鎴愬憳鑰岄噰鐢ㄤ綔鐢ㄥ煙鐨勬柟寮忚繘琛屽尯鍒嗐
渚嬪傦細A,B琛ㄧず涓や釜綾伙紝鍦ˋ,B涓閮芥湁鎴愬憳member銆
閭d箞錛
1銆丄::member灝辮〃紺虹被A涓鐨勬垚鍛榤ember銆
2銆丅::member灝辮〃紺虹被B涓鐨勬垚鍛榤ember銆
浜屻佸叏灞浣滅敤鍩熺﹀彿錛
鍏ㄥ矓浣滅敤鍩熺﹀彿錛氬綋鍏ㄥ矓鍙橀噺鍦ㄥ矓閮ㄥ嚱鏁頒腑涓庡叾涓鏌愪釜鍙橀噺閲嶅悕錛岄偅涔堝氨鍙浠ョ敤::鏉ュ尯鍒嗭紝渚嬪傦細
鍙傝冭祫鏂欙細
鐧懼害鐧劇--浣滅敤鍩熼檺瀹氱
❷ struct定義中在成員後面加冒號「:1」是什麼意思
這是位域操作的表示方法,也就是說後面加上「: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.