网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C语言内存对齐(结构体)浅析-创新互联

首先把结构体中的内存对齐的规则梳理一下:

创新互联公司是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:成都做网站、网站制作、成都外贸网站建设、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。

1、结构体中的第一个成员存放的首地址是零偏移处

2、结构体成员数据存放的首地址必须是有效对齐参数的整数倍,而有效对齐参数是系统默认对齐参数和数据自身对齐参数两者中的最小值

3、结构体的大小必须是所有成员中的大有效对齐参数的整数倍

4、结构体在内存中是按照顺序存放的

特别注意对齐是相对于结构体变量首地址(即第一个成员存放的首地址)来说的,举个例子:

我们定一个结构体变量如下

struct _test_st
{
    uint08 a;
    uint32 b;
    uint16 c;
}test_st;

结构体变量test_st成员a存放在偏移量为0的地址中,由于对齐规则,b就存放在偏移量为4的地址中,c就存放在偏移量为8的地址中(后面会具体分析)。

接下来进入实战分析。

下面按照系统默认4字节对齐来讲述。

我们定义3个结构体变量:

typedef struct _test_st_1
{
    uint08 a1;
    uint32 b1;
    uint16 c1;
}test_st_1;

typedf struct _test_st_2
{
    uint08 a2;
    test_st_1 b2;
    uint16 c2;
}test_st_2;

typedef struct _test_st_3
{
    uint08 a3;
    uint64 b3;
    uint16 c3;
}test_st_3;

test_st_1 st1;
test_st_2 st2;
test_st_3 st3;
uint08 array[48];
uint08 len_1

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻名称:C语言内存对齐(结构体)浅析-创新互联
网站地址:http://bjjierui.cn/article/dpodoj.html

其他资讯