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