C の空クラスのサイズを理解する
C では、空クラスのサイズはゼロではありません。最初は直観に反するように思えるかもしれませんが、その背後には重大な理由があります。
サイズがゼロではない理由
C 標準では、オブジェクトとそのクラスがサイズは 0。この制限により、2 つの異なるオブジェクトが同じメモリ アドレスを共有することができなくなります。一意のオブジェクト アドレスを保証するには、空のクラスであっても、少なくとも 1 のサイズが必要です。
以下の例では、
<code class="cpp">#include <iostream> class Test { }; int main() { std::cout << sizeof(Test); return 0; }</code>
Test クラスは空であるにもかかわらず、出力は 1 になります。 、規格に準拠するため、サイズは 1 です。 C のすべてのクラスは、その内容に関係なく、潜在的なメモリ アドレスの競合を避けるためにゼロ以外のサイズを持つ必要があります。
以上がC の空のクラスのサイズが 1 になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。