dlaczego padding nie ma miejsca w tym przypadku?
Zgodnie z moją wiedzą, domyślnie 4-bajtowe wyrównanie zostanie wykonane. mówić
typedef struct
{
int data7;
unsigned char data8;
//3 -bytes will be added here.
}Sample1;
więcsizeof(Sample1)
będzie 8.
Ale dla poniższej struktury, dlaczego padding nie występuje ?.
typedef struct
{
unsigned char data1;
unsigned char data2;
unsigned char data3;
unsigned char data4;
unsigned char data5;
unsigned char data6;
}Sample2;
Ale sizeof (Sample2) to tylko 6. Ta próbka2 nie jest 4-bajtową strukturą wyrównaną?
EDYTOWAĆ::
Jak na Wiki
Wyrównanie danych oznacza umieszczenie danych w przesunięciu pamięci równym pewnej wielokrotności rozmiaru słowa, co zwiększa wydajność systemu ze względu na sposób, w jaki procesor obsługuje pamięć.
Ale członkowie Sample2 nie będą wyrównani do wielokrotności dwóch w prawo?
Dzięki.