文章目录
- 结构体内存对齐
结构体内存对齐
对齐规则:
1.结构体的第一个成员,对齐到结构体在内存中存放位置的0偏移处
2.从第二个成员开始,每个成员都要对齐到(一个对齐数)的整数倍处对齐数。
对齐数:结构体成员服务器托管网自身大小和默认对齐数的较小值
VS:默认对齐数为8
Linux gcc:没有默认对齐数,对齐数就是结构体成员的自身大小
3.结构体的总大小,必须是所有成员的对齐数中最大对齐数的整数倍
4.如果结构体中嵌套了结构体成员,要将嵌套的结构体成员对齐到自己的成员中最大对齐数的整数倍。
结构体的总大小必须是最大对齐数的整数倍,这里的最大对齐数是服务器托管网:包含嵌套结构体成员中的对齐数的所有对齐数中的最大值。
举例:
#include
struct s1
{
char c1;
int i;
char c2;
};
struct s2
{
char c1;
char c2;
int i;
};
int main()
{
printf("%dn", sizeof(struct s1));
printf("%dn", sizeof(struct s2));
return 0;
}
结果:
结果一个为12 一个为8,为什么同样的子成员,结构体所占空间大小不同?又为什么结构体所占内存大小不是各个子成员类型所占内存大小之和?
#include
struct S3
{
double d;
char c;
int i;
};
struct S4
{
char c1;
struct S3 s3;
double d;
};
int main()
{
printf("%dn", sizeof(struct S3));
printf("%dn", sizeof(struct S4));
return 0;
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
Si24R03集成了基于RISC-V核的低功耗MCU和工作在服务器托管网2.4GHz ISM频段的无线收发器模块,是一款高度集成的低功耗SOC片。 应用领域: 1、物联网 2、智N门锁 3、电机控制 4、消费电子 5、工业控制 其无线收发器模块是专为低功耗无线…