概念與原則:
對齊值:例項:1. 成員變數都是基礎資料型別結構體總記憶體大小
// 這裡的struct替換成class也一樣
struct s1
;struct s2
;s1 ss1;
s2 ss2;
cout <<
sizeof
(ss1)
<< endl;
// 12
cout <<
sizeof
(ss2)
<< endl;
// 8
例項2:成員變數中有陣列
// 1
class
bigdata
;class
data
;bigdata bd;
data da;
cout <<
sizeof
(bd)
<< endl;
// 33
cout <<
sizeof
(da)
<< endl;
// 48
// 2
struct aa
;classc;
c ccc;
aa sfa;
cout <<
sizeof
(sfa)
<< endl;
// 48
cout <<
sizeof
(ccc)
<< endl;
// 56
例項3:成員變數中有自定義型別
class
s11;
class
s22;
cout <<
sizeof
(s11)
<< endl;
// 12
cout <<
sizeof
(s22)
<< endl;
// 24
C 中的記憶體對齊
記憶體對齊 在我們的程式中,資料結構還有變數等等都需要占有記憶體,在很多系統中,它都要求記憶體分配的時候要對齊,這樣做的好處就是可以提高訪問記憶體的速度。我們還是先來看一段簡單的程式 程式一 1 include 2using namespace std 34 structx15 1011struct...
C 中的記憶體對齊
在我們的程式中,資料結構還有變數等等都需要占有記憶體,在很多系統中,它都要求記憶體分配的時候要對齊,這樣做的好處就是可以提高訪問記憶體的速度。我們還是先來看一段簡單的程式 程式一 1 include iostream 2using namespace std 34 structx15 1011str...
C 中的記憶體對齊
c 的一道題 include iostream include string using namespace std pragma pack 1 struct student stu struct s s void main stu 結構體對齊 最後的偏移位址25不是4的倍數,填充3個位元組後,滿足...