как размер структуры зависит от типа данных
Я использую 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;
}
Выход: Размер структуры: 1typedef struct struct_size_tag
{
//char c;
int i;
}struct_size;
int main()
{
printf("Size of structure:%d\n",sizeof(struct_size));
return 0;
}
Выход: Размер структуры: 4typedef struct struct_size_tag
{
char c;
int i;
}struct_size;
int main()
{
printf("Size of structure:%d\n",sizeof(struct_size));
return 0;
}
Выход:
Размер структуры: 8