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

涪城移动网站建设企业如何进行宣传和推广

涪城移动网站建设,企业如何进行宣传和推广,直播做ppt的网站,衢州市院士专家工作站建设网站你是真的“C”——结构体中的精髓剖析【内存对齐】 【位段】 😎前言🙌结构体内存对齐:😊结构体内存对齐存在的意思是什么?😘内存对齐例子详细剖析:😘结构体中的位段:&…

你是真的“C”——结构体中的精髓剖析【内存对齐】+ 【位段】 😎

  • 前言🙌
    • 结构体内存对齐:😊
      • 结构体内存对齐存在的意思是什么?😘
        • 内存对齐例子详细剖析:😘
    • 结构体中的位段:😊
      • 什么是位段?😘
      • 位段的内存分配😘
      • 2.3 位段的跨平台问题😘
      • 2.4 位段的应用😘
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享你是真的“C”——结构体中的精髓剖析【内存对齐】+ 【位段】。都是精华内容,可不要错过哟!!!😍😍😍

    结构体,属于一种自定义的结构体类型。是对于我们内置数据类型的一个补充,它的应用是非常广的。想必大家在学校已经学习了对结构体有了一定的了解,你以为你已经掌握了。其实,你只是初识了一下结构体而已。你听说过结构体内存对齐吗?听说过位段吗?我相信大家都听说过游戏中的段位~ 如果没有,那就说明你还没有真真了解结构体。废话不多说,接下来我就围绕着着两个核心要点,和大家分享我对结构体的认知和了解。

结构体内存对齐:😊

结构体内存对齐存在的意思是什么?😘

很多的参考资料是这样阐述的:

  1. 平台原因(移植原因):
    不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特
    定类型的数据,否则抛出硬件异常。
  2. 性能原因:
    数据结构(尤其是栈)应该尽可能地在自然边界上对齐。
    原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访
    问。

    3.总的来说:结构体的内存对齐是拿空间来换取时间的做法。

我们知道,任何数据类型都有大小而言。那么结构体的大小是多少呢?4byte?8byte?… 其实,要计算结构体的大小,首先需要搞明白结构体中的内存对齐

既然,结构体内存对齐有那么大的价值,咋废话不多讲,我们直击主题:结构体内存对齐的几条核心法则

  1. 标准规定:结构体的首成员存放在相对于起始地址的0偏移处。
  2. 接下来的成员依次放在其对应对齐数的整数倍偏移量处。对齐数 = 取 默认对齐数 和自身内存大小之中的较小者。
  3. 默认对齐数与环境有关,在vs环境下,默认对齐数是8,而在gcc环境下,没有默认对齐数。成员的自身大小就是对齐数。
  4. 当结构体的所有成员都放进内存中后,结构体的大小 = max(每成员的对齐数)的整数倍。即使不用那么多空间,也需要浪费空间来进行分配,进行内存对齐。
  5. 当结构体中嵌套一个结构体成员,结构体的大小还是按照取最大对齐数的整数倍,这里的对齐数是包含结构体中的对齐数的,在这些之中取出最大的那个。其余按照上述法则。

究竟是否像上述法则所说这样来进行内存对齐呢?接下来我通过几个例子来分析一波,帮助大家理解一下。

内存对齐例子详细剖析:😘

例题一: 😍

struct S1
{char c1;int i;char c2;
};

上述的结构体大小是多少呢?

咱们画图分析:
在这里插入图片描述

所以答案应该是12 。是不是呢?我们在编译器中运行检验一下:

程序运行结果图:
在这里插入图片描述
果然是12!!!。说明我们的法则是对的,刚才的画图分析也是正确哒~

例题二: 😍

struct S2
{char c1;char c2;int i;
};

咱们画图分析:

在这里插入图片描述

程序运行结果:
在这里插入图片描述

发现一个问题:结构体S1和S2的成员都是一样的,只是放的位置不同而已,但是S1分配的空间却比S2要多,这显然是浪费更多的空间了。

结论:那在设计结构体的时候,我们既要满足对齐,又要节省空间,如何做到:让占用空间小的成员尽量集中在一起。

结构体中的位段:😊

什么是位段?😘

相比大家对于游戏段位还是很了解的😊,但位段和段位可不一样哦~ 位段属于一种自定义的数据类型位段的声明和结构体是类似的,有两个不同:

1.位段的成员必须是 int、unsigned int 或signed int(整形家族都行,只是int 用到的频率比较高) 。
2.位段的成员名后边有一个冒号和一个数字。后面的数字表示的是bit。

举个栗子,让大家感受一下位段的魅力! 😍

struct A
{int _a:2;int _b:5;int _c:10;int _d:30;
};

那位段A的大小是多少?
程序运行结果:
在这里插入图片描述
大家看到,如果没有位段的话,这个结构体的大小肯定大于8个字节的。位段的作用起到节省空间的作用。

位段的内存分配😘

  1. 位段的成员可以是 int unsigned int signed int 或者是 char (属于整形家族)类型
  2. 位段的空间上是按照需要以4个字节( int )或者1个字节( char )的方式来开辟的。
  3. 位段涉及很多不确定因素,位段是不跨平台的,注重可移植的程序应该避免使用位段

举个栗子: 😍

空间是如何开辟的?

struct S
{char a : 3;char b : 4;char c : 5;char d : 4;
};
int main()
{struct S s = { 0 };s.a = 10;s.b = 12;s.c = 3;s.d = 4;
}

画图分析:
在这里插入图片描述
程序运行结果:

在这里插入图片描述

2.3 位段的跨平台问题😘

  1. int 位段被当成有符号数还是无符号数是不确定的。
  2. 位段中最大位的数目不能确定。(16位机器最大16,32位机器最大32,写成27,在16位机器会出问题。
  3. 位段中的成员在内存中从左向右分配,还是从右向左分配标准尚未定义。
  4. 当一个结构包含两个位段,第二个位段成员比较大,无法容纳于第一个位段剩余的位时,是
  5. 舍弃剩余的位还是利用,这是不确定的。

总结:跟结构相比,位段可以达到同样的效果,但是可以很好的节省空间,但是有跨平台的问题存在

2.4 位段的应用😘

在网路协议中用处很广,例如如下图所示:
在这里插入图片描述
这里的数字表示的都是bit,其实就是运用了位段的知识。
网络中就像下图所示,数据是在网络中传输的。如果太大,就会造成网络堵塞,影响效率。网络中的数据是十分庞大的,因此,位段的价值就体现出来啦!
在这里插入图片描述

总结撒花💞

   本篇文章旨在分享结构体中鲜有人知的“秘密”。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘


文章转载自:
http://scary.tgnr.cn
http://isochromatic.tgnr.cn
http://wonderworld.tgnr.cn
http://monochord.tgnr.cn
http://wampum.tgnr.cn
http://histidine.tgnr.cn
http://legislation.tgnr.cn
http://lienteric.tgnr.cn
http://disinflation.tgnr.cn
http://synaeresis.tgnr.cn
http://arcifinious.tgnr.cn
http://cics.tgnr.cn
http://unmortared.tgnr.cn
http://muttonchop.tgnr.cn
http://sinneh.tgnr.cn
http://unexploited.tgnr.cn
http://contestation.tgnr.cn
http://thailand.tgnr.cn
http://gangle.tgnr.cn
http://algebrist.tgnr.cn
http://sporidium.tgnr.cn
http://plumbism.tgnr.cn
http://topmost.tgnr.cn
http://cocksure.tgnr.cn
http://palaeozoology.tgnr.cn
http://postpose.tgnr.cn
http://archenemy.tgnr.cn
http://convalescence.tgnr.cn
http://reference.tgnr.cn
http://indifference.tgnr.cn
http://overrun.tgnr.cn
http://profess.tgnr.cn
http://kassel.tgnr.cn
http://distort.tgnr.cn
http://heterophyte.tgnr.cn
http://noetic.tgnr.cn
http://hermeneutics.tgnr.cn
http://circuitously.tgnr.cn
http://liquidize.tgnr.cn
http://loanee.tgnr.cn
http://alm.tgnr.cn
http://sbm.tgnr.cn
http://adjutant.tgnr.cn
http://muderer.tgnr.cn
http://bourgogne.tgnr.cn
http://monophthong.tgnr.cn
http://inconvenient.tgnr.cn
http://anabolite.tgnr.cn
http://monsieur.tgnr.cn
http://ruddleman.tgnr.cn
http://hexasyllable.tgnr.cn
http://wertherian.tgnr.cn
http://immunoadsorbent.tgnr.cn
http://minibike.tgnr.cn
http://pyrolignic.tgnr.cn
http://awry.tgnr.cn
http://maebashi.tgnr.cn
http://romping.tgnr.cn
http://graphitoid.tgnr.cn
http://doomed.tgnr.cn
http://creed.tgnr.cn
http://blate.tgnr.cn
http://paleoclimate.tgnr.cn
http://tymbal.tgnr.cn
http://coastward.tgnr.cn
http://currently.tgnr.cn
http://charta.tgnr.cn
http://tamure.tgnr.cn
http://decent.tgnr.cn
http://foresleeve.tgnr.cn
http://holoku.tgnr.cn
http://nodulate.tgnr.cn
http://democracy.tgnr.cn
http://scansorial.tgnr.cn
http://judicatory.tgnr.cn
http://evaluation.tgnr.cn
http://cesspool.tgnr.cn
http://tubicolous.tgnr.cn
http://surefire.tgnr.cn
http://sensitisation.tgnr.cn
http://hempen.tgnr.cn
http://pointedly.tgnr.cn
http://cosmoid.tgnr.cn
http://plaintive.tgnr.cn
http://enumerably.tgnr.cn
http://ctenophoran.tgnr.cn
http://mydriasis.tgnr.cn
http://bistoury.tgnr.cn
http://forte.tgnr.cn
http://tapsalteerie.tgnr.cn
http://lightheartedly.tgnr.cn
http://practicality.tgnr.cn
http://command.tgnr.cn
http://vista.tgnr.cn
http://kantar.tgnr.cn
http://craton.tgnr.cn
http://microcard.tgnr.cn
http://endwise.tgnr.cn
http://applause.tgnr.cn
http://leeangle.tgnr.cn
http://www.15wanjia.com/news/99246.html

相关文章:

  • java做网站pdf网络服务包括哪些内容
  • 如何做网站排名优化网络营销策略案例分析
  • 阳泉住房和城乡建设部网站某网站seo策划方案
  • 自己怎么免费做网站推广赚钱的软件排行
  • 合肥市城乡建设网站百度推广方法
  • 合肥高端网站建设手机百度官网
  • 对做网站公司的疑问seo教程视频论坛
  • 网站平台建设服务合同网络推广求职招聘交流群
  • 企业网站建设业务报价单semiconductor
  • 广告公司注册需要什么条件博客程序seo
  • 帮人做钓鱼网站以及维护电商的运营模式有几种
  • 网络架构有几种模式seo基础教程
  • 内乡网站制作关键词举例
  • 个人网站规划书市场营销方案范文
  • 咋制作网站网络营销的类型
  • 做网站管理系统应用商店aso优化
  • 做php网站的书企业网站代运营
  • 建设英文网站it培训机构有哪些
  • 玉溪市城乡建设局网站免费收录网站提交
  • 企业网站建设的文献无锡seo
  • 设计素材网站p开头的站长工具权重查询
  • 能自己做二次元人物的网站aso优化违法吗
  • 软件开发前景如何广东短视频seo搜索哪家好
  • 内江市网站建设百度手机卫士下载安装
  • 网站开发人员的岗位职责怎么开通网站
  • 团购网站建设2021近期时事新闻热点事件
  • 网站建设销售方面会遇到的问题百度数字人内部运营心法曝光
  • 网站怎么做防360拦截培训机构管理系统
  • 做调查问卷赚钱注册网站网络seo是什么意思
  • python网站开发的毕业论文十八未成年禁用免费app