Да предположим, че sizeof(int) и sizeof(double) са съответно 4 и 8 и че преди това няма команда на препроцесор като #pragma pack следния код или опции на компилатора със същата функция като #pragma pack, използван в командния ред на компилатора
typedef struct
{
int n;
double d;
} T;
тогава колко е sizeof(T)?
Мисля, че зависи от ширината на шината за данни между процесора и RAM. Ако ширината е 32 бита, sizeof(T) е 12. Ако ширината е 64 бита, sizeof(T) е 16. На компютър с 32-битова шина за данни, за прехвърляне на 64-битово число от CPU към RAM или обратно, процесорът трябва да има достъп до шината за данни два пъти, като чете или записва 32 бита наведнъж, така че няма смисъл да се съхранява член d на структурата T на адрес, кратен на 8.
Съгласен ли си?
(Съжалявам за лошия ми английски)