c class 記憶體對齊

2021-04-25 16:28:05 字數 504 閱讀 9258

今天才算把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 中,乙個類虛函式表指標和成員是如何在記憶體中組織的大家看前面...