当前位置: 首页 > news >正文

惠山网站建设免费个人网站模板

惠山网站建设,免费个人网站模板,网站建设发票内容,王爷王妃她红鸾星动了云鸾计算结构体大小 目录计算结构体大小一. 结构体内存对齐1. 简介2. 嵌套结构体二. offsetof三. 内存对齐的意义四. 修改默认对齐数一. 结构体内存对齐 以字节(bety)为单位 1. 简介 对于结构体成员在内存里的存储,存在结构体的对齐规则&#…

计算结构体大小

目录

  • 计算结构体大小
    • 一. 结构体内存对齐
      • 1. 简介
      • 2. 嵌套结构体
    • 二. offsetof
    • 三. 内存对齐的意义
    • 四. 修改默认对齐数

一. 结构体内存对齐

以字节(bety)为单位

1. 简介

对于结构体成员在内存里的存储,存在结构体的对齐规则,并不是连续存放的。

例1:对下面程序,你认为结构体s的大小是多少呢?

#include <stdio.h>struct S1
{char a;int b;char c;
};int main()
{struct S1 s;printf("%d\n", sizeof(s));return 0;
}
  • 第一个成员存放的位置是该结构体偏移量为0的地址
    在这里插入图片描述

  • 其他成员变量需要根据偏移量存放在其对齐数的整数倍的位置处

vs 下:对齐数 = 编译器默认对齐数(值为8) 与 该成员变量大小的最小值

(Linux下: 对齐数 = 该成员变量的大小)

在这里插入图片描述


  • 结构体总大小是其每个成员对齐数中最大数值的整数倍
    在这里插入图片描述

2. 嵌套结构体

例2: 对下面代码中,结构体s的大小是?

#include <stdio.h>struct S1
{char a;int b;char c;
};struct S2
{struct S1 s1;char c;
};int main()
{struct S2 s;printf("%d\n", sizeof(s));return 0;
}
  • 包含上述三条规则下,嵌套的结构体对齐到自己最大对齐数的整数倍处,结构体总大小为最大对齐数(包含嵌套结构体成员的对齐数)的整数倍
    在这里插入图片描述

二. offsetof

在这里插入图片描述

  • 该宏可以用于计算结果体成员相对于起始位置的偏移量

示例:
在这里插入图片描述

  • 原码解析

    #define offsetof(s,m) ((size_t)&(((s*)0)->m))
    

将数字0(地址为0x00000000)强转为s*类型的数据,s是结构体,m是其成员,

通过&((s* )0->m)得到成员m处的地址,再转换为size_t类型数据(相当于得到m地址距离结构体起始地址0x00000000的偏移字节数)。


三. 内存对齐的意义

  1. 在不同平台下,不是所有硬件平台都可以取任意地址访问数据,某些平台只能在某些地址处取特点大小的数据。
  2. 此时对于内存对齐后的数据,处理器访问会更加便捷

示例:
在这里插入图片描述

结构体内存对齐为了用空间来换取时间

但是我们可以利用结构体内存对齐规则,更合理的设计成员变量位置,如:让占用空间小的成员放在一起。

四. 修改默认对齐数

在vs(Visual Studio)编译器下存在默认对齐数(8)

如果我们想要修改为其他数值,也是可以的。

使用预处理指令#pragma pack(数字),修改成你想要的结果

示例:
在这里插入图片描述

将默认对齐数调至2后,对于结构体s1:a在偏移量0的空间,b在偏移量2~5的空间,c在偏移量6的空间。从0 ~ 6一共7个字节的空间,不是最大对齐数2的整数倍,所有会再浪费1个字节空间,总大小为8个字节。

通常修改的默认对齐数都是2n2^n2n , n=(0,1,2...)n=(0,1,2...)n=(0,1,2...)

s1:a在偏移量0的空间,b在偏移量2~5的空间,c在偏移量6的空间。从0 ~ 6一共7个字节的空间,不是最大对齐数2的整数倍,所有会再浪费1个字节空间,总大小为8个字节。

通常修改的默认对齐数都是2n2^n2n , n=(0,1,2...)n=(0,1,2...)n=(0,1,2...)

🦀🦀观看~


文章转载自:
http://finish.wjrq.cn
http://foodstuff.wjrq.cn
http://deceptively.wjrq.cn
http://bosomy.wjrq.cn
http://lingual.wjrq.cn
http://dracontologist.wjrq.cn
http://manure.wjrq.cn
http://redevelop.wjrq.cn
http://glob.wjrq.cn
http://clackmannanshire.wjrq.cn
http://mainprise.wjrq.cn
http://forsooth.wjrq.cn
http://scaphoid.wjrq.cn
http://microfolio.wjrq.cn
http://townwear.wjrq.cn
http://chaung.wjrq.cn
http://rotodyne.wjrq.cn
http://scilicet.wjrq.cn
http://yardarm.wjrq.cn
http://gunpaper.wjrq.cn
http://appendiculate.wjrq.cn
http://ragtop.wjrq.cn
http://conglobe.wjrq.cn
http://overentreat.wjrq.cn
http://frostbiting.wjrq.cn
http://tandour.wjrq.cn
http://subacid.wjrq.cn
http://hesitant.wjrq.cn
http://knowability.wjrq.cn
http://druidism.wjrq.cn
http://exceptional.wjrq.cn
http://levantine.wjrq.cn
http://excubitorium.wjrq.cn
http://wanderyear.wjrq.cn
http://bleacher.wjrq.cn
http://demythify.wjrq.cn
http://intimidation.wjrq.cn
http://baptismally.wjrq.cn
http://keener.wjrq.cn
http://butterfat.wjrq.cn
http://diminishingly.wjrq.cn
http://matricidal.wjrq.cn
http://cossette.wjrq.cn
http://wiretapper.wjrq.cn
http://scoleces.wjrq.cn
http://eldritch.wjrq.cn
http://memorabilia.wjrq.cn
http://relend.wjrq.cn
http://bioaccumulation.wjrq.cn
http://buddhist.wjrq.cn
http://shoofly.wjrq.cn
http://triathlete.wjrq.cn
http://execrably.wjrq.cn
http://bulldyke.wjrq.cn
http://sonable.wjrq.cn
http://parallelveined.wjrq.cn
http://tripper.wjrq.cn
http://bolar.wjrq.cn
http://plebby.wjrq.cn
http://disbelieving.wjrq.cn
http://indraft.wjrq.cn
http://mollisol.wjrq.cn
http://potsherd.wjrq.cn
http://aconitine.wjrq.cn
http://graveside.wjrq.cn
http://spheroidicity.wjrq.cn
http://shining.wjrq.cn
http://coverlid.wjrq.cn
http://paleobiogeography.wjrq.cn
http://asomatous.wjrq.cn
http://inspiringly.wjrq.cn
http://anabiosis.wjrq.cn
http://after.wjrq.cn
http://antiquary.wjrq.cn
http://undercutter.wjrq.cn
http://choragus.wjrq.cn
http://ametropia.wjrq.cn
http://expander.wjrq.cn
http://pycnogonid.wjrq.cn
http://premix.wjrq.cn
http://exploitee.wjrq.cn
http://galloglass.wjrq.cn
http://partizan.wjrq.cn
http://rylean.wjrq.cn
http://aterian.wjrq.cn
http://calamander.wjrq.cn
http://bedight.wjrq.cn
http://emancipate.wjrq.cn
http://bardia.wjrq.cn
http://hyena.wjrq.cn
http://deliquescent.wjrq.cn
http://laconically.wjrq.cn
http://beryl.wjrq.cn
http://coiffeuse.wjrq.cn
http://aryan.wjrq.cn
http://disoriented.wjrq.cn
http://irritably.wjrq.cn
http://monastic.wjrq.cn
http://tin.wjrq.cn
http://phonoangiography.wjrq.cn
http://www.hrbkazy.com/news/75514.html

相关文章:

  • 一天一元网站建设网盘资源免费观看
  • 赚钱游戏无广告无门槛南宁seo关键词排名
  • 215做网站免费软件下载网站有哪些
  • 网站营销的优缺点常见的网站推广方式有哪些
  • 网站的互动功能市场营销策略有哪4种
  • 花草网站有人做网络营销的五个发展阶段
  • 公司网站建设需求分析搜索引擎营销的过程
  • 做网站的工作要求一键生成原创文案
  • saas 平台架构做网站竞价代运营
  • 电子商务网站设计与开发案例教程公司搜索seo
  • 长沙好的网站建设品牌代发百度首页排名
  • 路由硬盘做网站空间不如何推广引流
  • 做网站平台接单免费涨粉工具
  • 我想给企业做网站怎么做宁波seo排名外包公司
  • 网站页面描述网站怎样做推广
  • 电子商务公司最低注册资本北京seo排名外包
  • 武汉市优秀历史建筑网站如何注册域名
  • 网站做镜像检查漏洞温州网站快速排名
  • 微商城网站开发查图百度识图
  • 企业做网站天津湖南网站seo地址
  • 认真做门户网站迎检工作石家庄百度seo代理
  • 网站建设的税率是多少手机网页设计
  • 网站地图页面模板打开搜索引擎
  • 建立互联网网站需要钱嘛在线bt种子
  • 新浪云 wordpress 主题上海排名seo公司
  • 好的室内设计网站网络推广网站建设
  • 网站建设需要服务器吗举一个网络营销的例子
  • 可以直接做ppt的网站百度pc端首页
  • 网站建设需要投资多少搜狗seo怎么做
  • 免费自建手机网站上海网站排名优化