Размер пустой структуры равен 0 байт в C, но в C++ он равен 1 байт. Зачем? Какая разница?
В C
это не правильно, вы не можете иметь struct
без члена в ней.
C99 says
,
Если в списке struct-declaration-list нет именованных членов, поведение не определено.
Однако GCC
позволяет вам иметь структуру без элемента с размером 0
. G++
рассматривает структуру так, как будто в ней есть один член типа char
.
Посмотрите на это предыдущее SO, отвечая на вопрос, почему в C++ размер равен 1B
.
sizeof()
в пустой структуре (должно быть одинаковым для класса).