gpt4 book ai didi

c - (struct)的大小是多少?

转载 作者:行者123 更新时间:2023-11-30 20:14:44 24 4
gpt4 key购买 nike

int main()
{
struct node
{
char i;
int a;
};
printf("sizeof(struct node) =%d\n",sizeof(struct node));
return 0;
}

该程序的输出是 8 个字节。这里 sizeof(int)+size(char) 不等于 8 字节。尽管如此,我们还是得到了 8 个字节。这是因为填充。没关系。但在下面的程序中,这个概念就被违反了。为什么?

int main()
{
struct node
{
double i;
int a;
};
printf("sizeof(struct node) =%d\n",sizeof(struct node));
return 0;
}

如果 sizeof(double) 是 8 字节,那么 sizeof(struct node) 应该是 16 字节(按照第一个程序)。但它打印的是12字节。为什么?

最佳答案

我在我的系统上尝试过,即使我将 a 定义为字符,它也会返回 16。这是因为填充取决于机器。

关于c - (struct)的大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24908713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com