sizeof estrutura vazia é 0 em C e 1 em C ++, por que? [duplicado]

Possíveis duplicatas:
Classe vazia em C ++
Qual é o tamanho de uma estrutura vazia em C?

Eu li em algum lugar que o tamanho de uma estrutura vazia no C ++ é 1. Então pensei em verificá-lo. Infelizmente eu salvei como um arquivo C e usei<stdio.h>&nbsp;cabeçalho e fiquei surpreso ao ver a saída. Foi 0.

Que significa

struct Empty {

};

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

estava imprimindo 0 quando compilado como um arquivo C e 1 quando compilado como um arquivo C ++. Eu quero saber o motivo. Eu li que sizeof empty struct em c ++ não é zero porque se o tamanho fosse 0, dois objetos da classe teriam o mesmo endereço, o que não é possível. Onde eu estou errado?