第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

64位Ubuntu下的奇怪輸出結(jié)果,sizeof(Class)

Shape.h的代碼定義如下:

class?Shape?{
public:
Shape();
virtual?~Shape();
virtual?double?calcArea();
};

Circle.h的代碼定義如下:

class?Circle:?public?Shape?{
public:
Circle(int?radius);
~Circle();
//double?calcArea();
protected:
int?m_radius;
};

Main.cpp主函數(shù)的代碼及輸出結(jié)果為:

int?main(void)
{
Shape?sh;
cout?<<?sizeof(sh)?<<?endl;
//?Output:?8
Circle?ci(100);
cout?<<?sizeof(ci)?<<?endl;
//?Output:?16
return?0;
}

這里就對(duì)第二輸出16不理解了,Shape類由于有虛函數(shù)表指針占8字節(jié),Circle自身只有int類型的一個(gè)變量占4字節(jié),那總共應(yīng)該8+4=12字節(jié)呀?為啥這里是16字節(jié)呢?

我猜測(cè)是不是因?yàn)閮?nèi)存對(duì)齊的問(wèn)題,求解釋呀!各位大神


正在回答

3 回答

一般這種情況都是因?yàn)閮?nèi)存對(duì)齊

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

帥踢鍋 提問(wèn)者

請(qǐng)問(wèn)64-bit Ubuntu的對(duì)齊單位是8字節(jié)嗎?哪里可以查到每個(gè)系統(tǒng)的對(duì)齊標(biāo)準(zhǔn)呀
2015-10-04 回復(fù) 有任何疑惑可以回復(fù)我~
#2

onemoo 回復(fù) 帥踢鍋 提問(wèn)者

基本上是CPU尋址對(duì)地址對(duì)齊有要求,不能說(shuō)是和系統(tǒng)相關(guān)。 一般在寫(xiě)代碼時(shí)腦中有這個(gè)概念就可以了,我也沒(méi)有把這些都背下來(lái)。 要是問(wèn)我哪里能查到,我只能說(shuō)各CPU廠商的產(chǎn)品規(guī)格手冊(cè)中詳細(xì)說(shuō)明了這些。
2015-10-04 回復(fù) 有任何疑惑可以回復(fù)我~
#3

帥踢鍋 提問(wèn)者 回復(fù) onemoo

原理是這樣!onemoo果然是大神啊,兩三次都是您回復(fù)的。實(shí)在太感謝啦
2015-10-04 回復(fù) 有任何疑惑可以回復(fù)我~

內(nèi)存對(duì)齊可以參考:《計(jì)算機(jī)組成原理》

0 回復(fù) 有任何疑惑可以回復(fù)我~

今天也想到了這個(gè)問(wèn)題,忘了字節(jié)對(duì)齊的概念了,原來(lái)如此。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
C++遠(yuǎn)征之多態(tài)篇
  • 參與學(xué)習(xí)       66223    人
  • 解答問(wèn)題       334    個(gè)

本教程將帶領(lǐng)大家體會(huì)面向?qū)ο笕筇匦灾械亩鄳B(tài)特性

進(jìn)入課程

64位Ubuntu下的奇怪輸出結(jié)果,sizeof(Class)

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)