Eventuali duplicati:
Why isn’t sizeof for a struct equal to the sum of sizeof of each member?dimensione di struct in C
consideri il seguente codice 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);
}
Il risultato è:
Perché la dimensione della struttura non è uguale alla somma delle dimensioni delle sue singole variabili componente?
È possibile utilizzare l'attributo confezionato in gcc. Ciò eliminerà il riempimento e manterrà la struttura il più piccola possibile. struct test_t { int c; } __attribute __ ((__ packed__)); – eaanon01
Duplicato di (almeno) http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member – dmckee
eaanon01 . non dovresti dire a nessuno di qualcosa di non vendibile come attributo confezionato a meno che non ci sia una ragione veramente buona e tutte le implicazioni siano comprese. –