ENUM在結構體中占用空間嗎

2021-06-08 19:55:18 字數 581 閱讀 6645

今天在除錯網路問題時,突然想到了動態資料報,要用到enum來區分不同的資料報。此時想到乙個問題"enum在結構體中占用空間嗎"

於是我寫了段**測試了一下

struct msg

;enum ;

int a;

int b;

};void main()

; enum ;

int a;

int b;

int func()

int func2()

//virtual int func3()

};void main()

{ char buf[50];

int a = 5;

int b = 6;

memset(buf, 0, sizeof(buf));

memcpy(buf, (void*)&a, sizeof(int));

memcpy(buf+sizeof(int), (void*)&b, sizeof(int));

msg msg;

memcpy((void*)&msg, (void*)buf, sizeof(msg));

cout

ENUM在結構體中占用空間嗎(2)

寫了上面一篇後,仍然意猶未盡,想測試下函式,虛函式,當然,從書本上我早知道普通函式不佔結構體空間,虛函式有個虛函式指標佔四個自己的空間。但是我都是從書本上看到的,一直以來沒有真正去測試過。include include include struct msg enum int a int b int ...

結構體的空間占用

本文主要包括二個部分,第一部分重點介紹在vc中,怎麼樣採用sizeof來求結構的大小,以及容易出現的問題,並給出解決問題的方法,第二部分總結出vc中sizeof的主要用法。1 sizeof應用在結構上的情況 請看下面的結構 struct mystruct 對結構mystruct採用sizeof會出現...

結構體占用空間的大小 pragma pack

pragma pack 8 struct s1 struct s2 pragma pack sizeof s2 結果為24.成員對齊有乙個重要的條件,即每個成員分別對齊.即每個成員按自己的方式對齊.也就是說上面雖然指定了按8位元組對齊,但並不是所有的成員都是以8位元組對齊.其對齊的規則是,每個成員按...