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?