0

完全に空のクラスのオブジェクトを作成する場合、そのサイズは標準で保証されているように >0 になります (2 つのオブジェクトのアドレスが異なるため)。しかし、このバイトに格納されているもの (値、インデックス、アドレス) に興味がありますか? これを知る方法はありますか?

4

4 に答える 4

1

技術的には、そこに格納されているものはUnspecifiedです。
要するに、それは実装に任されており、実装は動作を文書化する必要はありません。

于 2013-02-25T18:08:56.470 に答える
1

これは、たとえば acharintメンバーの間のギャップを埋めるために使用される他のフィラーと同じ (不明、未定義) の内容を持ちます。また、「ギャップフィラー」と同様に、「このデータの配置がうまくいくことを確認する」以外の目的はありません。空のクラスのサイズが 0 の場合、そのような 2 つのオブジェクトの配列は 0 バイトを占め、両方のオブジェクトが同じアドレスを持つことになり、あらゆる種類の物事にとってかなり奇妙になります。

于 2013-02-25T18:09:35.337 に答える
0

私が正しく思い出せば、標準は空のクラスのオブジェクトがスペースを占めることを保証します。正確にどのくらいのスペースが保存されているかはわかりません。そのため、実装者次第です。

与えられたスペースに何があるのか​​知りたい場合は、キャストを再解釈して見てみることができます。

于 2013-02-25T18:08:07.873 に答える
0

何も、それはただのパディングです。他のパディングと同じように、そこに格納されている値に依存することはできません。また、値が存在することさえも信頼できません。

于 2013-02-25T18:08:27.280 に答える