我正在使用 Linux 32 位操作系统和 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;
}
输出: