Нет, структура не должна ничего добавлять. В отличие от Java или .NET, где у классов (и структур) есть куча других обязанностей, в C и C ++ они просто контейнеры, используемые для хранения нескольких элементов данных. В C ++ им, возможно, придется хранить vtable для разрешения вызовов виртуальных функций, если таковые существуют, но, как правило, нет, сама структура не имеет накладных расходов.
Единственное исключение:
typedef struct {} empty;
assert(sizeof(empty) > 0);
Размер пустой структуры будет , а не равен нулю. Структура должна иметь некоторый ненулевой размер, поскольку каждый объект должен иметь уникальный адрес. (В противном случае вы не сможете создать массив этих структур)