sizeof estructura vacía es 0 en C y 1 en C ++ ¿por qué? [duplicar]

Posibles duplicados:
Clase vacía en C ++
¿Cuál es el tamaño de una estructura vacía en C?

Leí en alguna parte que el tamaño de una estructura vacía en C ++ es 1. Así que pensé en verificarlo. Lamentablemente lo guardé como un archivo C y usé<stdio.h> encabezado y me sorprendió ver la salida. Fue 0.

Eso significa

struct Empty {

};

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

imprimía 0 cuando se compilaba como un archivo C y 1 cuando se compilaba como un archivo C ++. Quiero saber el motivo. Leí que el tamaño de la estructura vacía en c ++ no es cero porque si el tamaño fuera 0, dos objetos de la clase tendrían la misma dirección, lo que no es posible. Donde me equivoco

Respuestas a la pregunta(3)

Su respuesta a la pregunta