C++類的大小計算問題

我在學校上C++課的時候,老師開始教的是類中所有變量的大小加起來就是類的大小。但是實際用“ sizeof ”測試就發現不對,看下面的例子。

class s {
public:
	char a;		//1字節
	int b;		//4字節
	float c;	//4字節
	double d;	//8字節
}

sizeof(s);  	//返回值爲24

這四個變量加起來是17個字節,但是由於內存對齊的原因,會調整實際的內存佔用,調整完之後a會佔用4個字節,float會佔用8個字節,但是他們倆實際使用的只有1個和4個字節。具體的內存對齊原理可以百度。

網上也有關於這個問題的解答:
知乎如何計算結構體大小?
簡書什麼是內存對齊?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章