今天在除錯網路問題時,突然想到了動態資料報,要用到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位元組對齊.其對齊的規則是,每個成員按...