sizeof leere Struktur ist 0 in C und 1 in C ++ warum? [Duplikat

Mögliche Duplikate:
Leere Klasse in C ++
Was ist die Größe einer leeren Struktur in C?

Ich habe irgendwo gelesen, dass die Größe einer leeren Struktur in C ++ 1 ist. Also habe ich darüber nachgedacht, sie zu überprüfen. Leider habe ich es als C-Datei gespeichert und @ verwend<stdio.h> Header und ich war überrascht, die Ausgabe zu sehen. Es war 0.

Das bedeute

struct Empty {

};

int main(void)
{
  printf("%d",(int)sizeof(Empty));
}

gab 0 aus, wenn es als C-Datei kompiliert wurde, und 1, wenn es als C ++ - Datei kompiliert wurde. Ich möchte den Grund wissen. Ich habe gelesen, dass sizeof empty struct in c ++ nicht null ist, denn wenn die Größe 0 wäre, hätten zwei Objekte der Klasse dieselbe Adresse, was nicht möglich ist. Wo irre ich mich?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage