今日份学习“结构体的内存对齐”
前言:
该篇文章主要讲解“结构体”在内存中如何存储?结构体的大小(字节)如何计算?如何更好的创建一个结构体?
OK!开始我们的表演
你认为的结构体的大小:
struct s1
{
char c1;
int a;
char c2;
};
struct s2
{
char c1;
char c2;
int a;
};
struct s1 a={0};
,struct s2 b={0};
printf("%d\n",sizeof(a));
你觉得a是多少?
printf("%d\n",sizeof(b));
你觉得b是多少?
带着的答案来看它认为的答案
它认为的结构体的大小:
#include<stdio.h>
struct s1
{
char c1;
int a;
char c2;
};
struct s2
{
char c1;
char c2;
int a;
};
int main()
{
struct s1 a = { 0 };
struct s2 b = { 0 };
printf("a=%d\n", sizeof(a));
printf("b=%d\n", sizeof(b));
}
很明显两个结构体大小不一样,s1大小为12字节,但是s2大小为8字节
为什么两个结构体成员都是一样的,可为什么大小不一样呢?
标签:struct,s1,默认,char,内存,对齐,结构,关于 From: https://blog.51cto.com/u_15993084/6176585