Heim > Artikel > Backend-Entwicklung > Warum hat eine leere Klasse in C die Größe 1?
Die Größe leerer Klassen in C verstehen
In C ist die Größe einer leeren Klasse nicht Null. Dies mag auf den ersten Blick kontraintuitiv erscheinen, aber es gibt einen entscheidenden Grund dafür.
Warum die Größe nicht Null ist
Der C-Standard verbietet Objekten und ihren Klassen, eine zu haben Größe 0. Diese Einschränkung verhindert, dass zwei verschiedene Objekte dieselbe Speicheradresse teilen. Sogar eine leere Klasse muss eine Größe von mindestens 1 haben, um eindeutige Objektadressen sicherzustellen.
Im bereitgestellten Beispiel:
<code class="cpp">#include <iostream> class Test { }; int main() { std::cout << sizeof(Test); return 0; }</code>
Die Ausgabe ist 1, da die Testklasse, obwohl sie leer ist , hat eine Größe von 1, um der Norm zu entsprechen. Jede Klasse in C muss unabhängig von ihrem Inhalt eine Größe ungleich Null haben, um potenzielle Speicheradressenkonflikte zu vermeiden.
Das obige ist der detaillierte Inhalt vonWarum hat eine leere Klasse in C die Größe 1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!