Come noto, per impostazione predefinita verrà eseguito l'allineamento a 4 byte. diconoperché il padding non sta accadendo in questo caso?
typedef struct
{
int data7;
unsigned char data8;
//3 -bytes will be added here.
}Sample1;
così sizeof(Sample1)
sarà 8.
Ma per la seguente struttura, perché imbottitura non è accaduto ?.
typedef struct
{
unsigned char data1;
unsigned char data2;
unsigned char data3;
unsigned char data4;
unsigned char data5;
unsigned char data6;
}Sample2;
Ma il sizeof (Sample2) dista solo 6. Questo Sample2 non è una struttura allineata a 4 byte?
EDIT ::
Secondo Wiki
allineamento dati significa mettere i dati a un offset uguale a un multiplo della dimensione della parola, che aumenta le prestazioni del sistema di memoria a causa del modo la CPU gestisce la memoria.
Ma i membri di Sample2 non saranno allineati in multipli di due a destra ??
Grazie.
buona domanda +1 – Angus