Heim  >  Artikel  >  Backend-Entwicklung  >  Warum hat eine leere Klasse in C die Größe 1?

Warum hat eine leere Klasse in C die Größe 1?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 21:25:29818Durchsuche

Why Does an Empty Class in C   Have a Size of 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn