C语言-结构体的大小

结构体大小(sizeof)计算规则

1.以最大类型为字节对齐宽度
2.依次填补各个成员字节
3.结尾补齐

例题1

	struct Stu
	{
		short s;	//2
		int a;		//4
		double d;	//8
		char c2;	//1
	};
	int main(void)
	{
		Stu stu;
		printf("%d, %d\n", sizeof(struct Stu), sizeof(stu));//24 24
	}

结果:
在这里插入图片描述
计算方式:

在这里插入图片描述
最大类型为8
依次放入short, int等
空白(空余部分)自动补齐

在这里插入图片描述3 * 8 = 24

例题2

	struct Stu
	{
		short s;	//2
		int a;		//4
		double d;	//8
		char c2;	//1
		int a2;		//4
		int a3;		//4
	};
	int main(void)
	{
		Stu stu;
		printf("%d, %d\n", sizeof(struct Stu), sizeof(stu));//32 32
	}

在这里插入图片描述
在这里插入图片描述最大类型为8
依次放入short, int等
空白(空余部分)自动补齐

在这里插入图片描述4 * 8 = 32

猜你喜欢

转载自blog.csdn.net/weixin_43340991/article/details/86560432