как размер структуры зависит от типа данных

Я использую 32-битную ОС Linux и компилятор GCC.

Я попытался с тремя различными типами структуры. в первой структуре я определил только одинchar переменная. размер этой структуры равен 1, что правильно.

во второй структуре я определил только одинint переменная. здесь размер структуры показывает 4, что тоже правильно.

но в третьей структуре, когда я определил одинchar и одинint это означает, что общий размер должен быть 5, но вывод, который он показывает 8. Может кто-нибудь объяснить, как назначается структура?

typedef struct struct_size_tag
{
    char c;
    //int i;
}struct_size;

int main()
{
        printf("Size of structure:%d\n",sizeof(struct_size));
        return 0;
}
Выход: Размер структуры: 1
typedef struct struct_size_tag
{
    //char c;
    int i;
}struct_size;

int main()
{
        printf("Size of structure:%d\n",sizeof(struct_size));
        return 0;
}
Выход: Размер структуры: 4
typedef struct struct_size_tag
{
    char c;
    int i;
}struct_size;

int main()
{
        printf("Size of structure:%d\n",sizeof(struct_size));
        return 0;
}

Выход:

Размер структуры: 8

Ответы на вопрос(4)

Ваш ответ на вопрос