今天才算把class 的記憶體對齊又多明白了一點.
1.class a{
char a;
int b;
2.class b{
char a;
char b;
int c;
3.class c{
char a;
int b;
char c;
sizeof(a) = 8
sizeof(b) = 8;
sizeof(c) = 12;
對於a,由於char a 的大小是1位元組,int b 的大小是4位元組,所以為了對齊,應該是 4+4 = 8
對於b,由int 型位元組是4,所以記憶體最齊為4的倍數,所以 連續2個char只佔4個位元組的2個,於是b的大小是4+4 = 8
對於c,記憶體也是對齊4,a佔1,但是為了對齊,所以是4,接著int 是4,後面c同樣佔4 所以大小為 4+4+4 = 12;
對於乙個class,其大小由非靜態成員變數和虛函式決定
C class與記憶體
類名 變數名 棧區 類名 指標名 new 類名 堆區 類的靜態成員 靜態區 類的成員函式,靜態函式都在 區,類的函式都是共享的 共享,所有的類物件共享 const變數在類的外部,一開始必須初始化,用常量強行替換,不讀記憶體 const變數在類的內部,必須構建乙個類才能初始化,const與c語言裡的c...
C class例項的記憶體結構
c class例項 的記憶體結構 author zfive5 zidong email zfive5 yahoo.com.cn 引子 這些天讓一些概念和演算法煩得不知所措,只能聽從佛祖教誨的 放下,然後上csdn去,看了兩篇關於c 的文章,這個年頭,能這樣拷問 茴 字多個寫法的人不多了,在這裡贊一下...
C class例項的記憶體結構
這些天讓一些概念和演算法煩得不知所措,只能聽從佛祖教誨的 放下,然後上csdn去,看了兩篇關於c 的文章,這個年頭,能這樣拷問 茴 字多個寫法的人不多了,在這裡贊一下,但裡面的一些東西還是沒有挖掘乾淨,所以有了寫一些東西的衝動.正文 在c 中,乙個類虛函式表指標和成員是如何在記憶體中組織的大家看前面...