sizeof()
オペレータの行動を理解するのに役立つ人はいますか?クラスのサイズがメンバーの合計よりも大きいのはなぜですか?
#include <iostream>
using namespace std;
class A{
int first;
double last;
public:
A(int a)
{
cout << a << endl;
}
};
int main()
{
A a(3);
cout << sizeof(a) << endl;
return 0;
}
このコードは、16バイトのサイズを表示します。クラスのサイズはメンバーに基づいて計算されます。だから私は4バイト(int
)+ 8バイト(double
)= 12を持っています。
なぜ私は16バイトを得ましたか?
私がint
とdouble
のメンバーをコメントアウトすると、1バイトになります。
は、Visual C++を使用する場合は、いいえ、私は普通のグラムを使用https://msdn.microsoft.com/en-us/library/xh3e3fd0.aspxを参照し、出力12 –
を作るために '/ Zp1'オプションを試してみてください++コンパイラ –
GCCはVisual C++と同じように「普通」です:)どんな場合でも、すべてのC++コンパイラは同様のオプションを提供します。このことは、本質的に実装固有のものです。 –