结构体大小的计算及设置内存字节对齐数原理理解

源码可参考上一篇的 《结构体初始化及结构体指针.结构体数组.结构体函数的调用赋值等

//结构体变量的大小不仅由 成员大小决定+内存对齐(数据存储的规则)
//作用:大大增大内存读取效率
//设置内存对齐
#pragma pack(8);//8字节对齐 vc6.0系统默认是8字节对齐
//#pragma pack(4);//8字节对齐 vc6.0系统默认是8字节对齐
//#pragma pack(1);//1字节对齐 即结构体成员的字节大小
struct NODE
{
char ch; //1
short sh; //2
int in; //4
float f; //4
double db;//8
char* p; //4
char arr[5];//5 11+17=28
};
int main(void)
{
printf("%d\n",sizeof(struct NODE));
}
8字节内存排序图

4字节内存排序图:



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值