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.

questionAnswers(4)

yourAnswerToTheQuestion