Según mi conocimiento, de forma predeterminada se realizará la alineación de 4 bytes. dicen¿Por qué el relleno no está sucediendo en este caso?
typedef struct
{
int data7;
unsigned char data8;
//3 -bytes will be added here.
}Sample1;
por lo sizeof(Sample1)
habrá 8.
Sin embargo, para la siguiente estructura, ¿por qué relleno no se ha pasado ?.
typedef struct
{
unsigned char data1;
unsigned char data2;
unsigned char data3;
unsigned char data4;
unsigned char data5;
unsigned char data6;
}Sample2;
Pero el sizeof (Sample2) está a sólo 6. ¿Esta Sample2 no es una estructura alineada de 4 bytes?
EDITAR ::
Según Wiki
alineación de datos significa poner los datos a un desplazamiento igual a un múltiplo del tamaño de la palabra, lo que aumenta el rendimiento del sistema de memoria debido a la forma en que la CPU maneja la memoria.
Pero los miembros de Sample2 no se alinearán en múltiplos de dos ¿no?
Gracias.
buena pregunta +1 – Angus