Можно создать дубликат:
Why isn’t sizeof for a struct equal to the sum of sizeof of each member?размер структуры в C
Рассмотрим следующий код C:
#include <stdio.h>
struct employee
{
int id;
char name[30];
};
int main()
{
struct employee e1;
printf("%d %d %d", sizeof(e1.id), sizeof(e1.name), sizeof(e1));
return(0);
}
Выходной сигнал является:
Почему размер структуры не равен сумме размеров отдельных переменных компонента?
Вы можете использовать атрибут, упакованный в gcc .. Это отменит заполнение и сохранит структуру как можно меньше. struct test_t { int c; } __attribute __ ((__ packed__)); – eaanon01
Дубликат (по крайней мере) http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member – dmckee
eaanon01 , вы не должны рассказывать никому о чем-то, что невозможно, поскольку атрибут упакован, если нет действительно действительно веской причины, и все последствия понятны. –