Возможные дубликаты:
Пустой класс в С++
Каков размер пустой структуры в C?
Я где-то читал, что размер пустой структуры в С++ равен 1. Поэтому я подумал о ее проверке.
К сожалению, я сохранил его как файл C и использовал заголовок <stdio.h>
, и я был удивлен, увидев выход. Это было 0.
Это означает
struct Empty {
};
int main(void)
{
printf("%d",(int)sizeof(Empty));
}
печатал 0 при компиляции в виде файла C и 1 при компиляции в виде файла С++. Я хочу знать причину. Я читал, что sizeof пустой структуры в С++ не равен нулю, потому что если бы размер был равен 0, то два объекта класса имели бы тот же адрес, который невозможен. Где я ошибаюсь?