了解C++类的大小和类变量的字节对齐
生活随笔
收集整理的這篇文章主要介紹了
了解C++类的大小和类变量的字节对齐
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
空類;
空類沒有內(nèi)容,但是需要分配地址;大小為1個(gè)字節(jié);
基礎(chǔ)類;
下圖類占用8個(gè)字節(jié);i 是四字節(jié);c本身是一字節(jié)大;為對齊填充了3個(gè)字節(jié);總大小是8字節(jié);
?
double為8字節(jié)大;下圖,4 + 4 + 8 = 16;
?
帶虛函數(shù)的情況;
下圖類占用12個(gè)字節(jié),
四字節(jié)對齊2個(gè)變量共占用8個(gè)字節(jié);由于存在虛函數(shù),在類開始位置插入了一個(gè)虛函數(shù)指針,該指針占用4個(gè)字節(jié),共計(jì)12字節(jié);類的非虛函數(shù)不占用類對象的內(nèi)存,函數(shù)編譯后形成二進(jìn)制文件放在內(nèi)存中的代碼段區(qū);
?
類繼承的情況;
基類大小為8個(gè)字節(jié);繼承類大小為12字節(jié);繼承類繼承了基類的變量;
在內(nèi)存中基類在派生類的前面;這就在看不到的情況下系統(tǒng)復(fù)制了一份數(shù)據(jù);
?
?
總結(jié)
以上是生活随笔為你收集整理的了解C++类的大小和类变量的字节对齐的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bochs调试Linux内核初步学习 -
- 下一篇: VC++ 中MSDataGrid控件的使