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

湖南网站建设的公司排名那些提卡网站是怎么做的

湖南网站建设的公司排名,那些提卡网站是怎么做的,中山网站建设品牌,河南省建设监理协会官网站#x1f921;博客主页#xff1a;醉竺 #x1f970;本文专栏#xff1a;《C语言深度解剖》 #x1f63b;欢迎关注#xff1a;感谢大家的点赞评论关注#xff0c;祝您学有所成#xff01; ✨✨#x1f49c;#x1f49b;想要学习更多C语言深度解剖点击专栏链接查看博客主页醉竺 本文专栏《C语言深度解剖》 欢迎关注感谢大家的点赞评论关注祝您学有所成 ✨✨想要学习更多C语言深度解剖点击专栏链接查看✨✨  目录 1. 结构体内存大小计算引例  2. 结构体内存对齐规则  2.1对齐规则1  2.2对齐规则2  2.3对齐规则3  2.4对齐规则4 3. 实战  上一篇文章中我们学习了结构体的进阶其中介绍了结构体内存对齐的规则由于结构体内存对齐需要讲解的篇幅较长所以这里专门写了一篇文章来讲解。感兴趣的可以先阅读这一篇文章 《结构体进阶学习》https://blog.csdn.net/weixin_43382136/article/details/138768281 1. 结构体内存大小计算引例  下面实例中结构体的类型你觉得是多大 (Visual Stdio环境下) #include stdio.h struct Stu {char name;int age; };int main() {printf(%d, sizeof(struct Stu));return 0; } 初学结构体的人会认为结构体类型的大小是其中各变量的大小之和上述代码中结构体是 5 字节其实并非如此下面是运行结果 8 字节 为什么输入结果是8而不是5呢这与结构体在内存中特殊的存储方式有关接下来就引出我们本章的主题 《结构体内存对齐》 2. 结构体内存对齐规则  1. 第一个成员存储在与结构体变量偏移量为0的地址处。 2. 其他成员变量要对齐到某个数字对齐数的整数倍的地址处。     对齐数 编译器默认的一个对齐数 与 该成员大小的较小值。 VS中默认的值为8GCC环境下没有默认对齐数此时结构体成员自身的大小就是对齐数 3. 结构体总大小为最大对齐数每个成员变量都有一个对齐数的整数倍。 4. 如果嵌套了结构体的情况嵌套的结构体对齐到自己的最大对齐数的整数倍处结构体的整体大小就是所有最大对齐数含嵌套结构体的对齐数的整数倍。  上述规则猛的一看会有点懵什么跟什么啊请继续往下阅读。 2.1对齐规则1  第一个结构体成员在与结构体变量偏移量为0的地址处。  偏移量结构体变量中第一个成员的地址 相对于首地址的距离。 对齐规则1中偏移量为0就代表着结构体变量中第一个成员是从开辟的整个结构体变量空间的首地址开始存储。 这里我们用以下结构体作为一个例子下面结构体变量的大小为12字节 struct S1 {char c1;int i1;int i2; }; 我们一步步画图来分析 c1 存储位置 2.2对齐规则2  其他成员变量要对齐到某个数字对齐数的整数倍的地址处。 对齐数 编译器默认的一个对齐数 与 该成员大小的较小值。 VS中默认的值为8 GCC环境下没有默认对齐数此时结构体成员自身的大小就是对齐数 1. 当前是VS环境下默认对齐数是8后面两个成员分别是 int i1, int i2它们都是4字节因此在VS环境下这两个成员变量的对齐数 就是 “4”。 2. 根据规则2其他成员变量要对齐到 对齐数的整数倍地址处已知后面两个成员 i1 和 i2 对齐数是 4 这个规则意味着i1 和 i2 要从偏移量为 4 的整数倍位置开始存储。具体看下图 同理 i2 也是从 偏移量为 4 的整数倍位置开始存储这里由图可知需要从偏移量为 8 的位置开始存储如下图所示 而偏移量为“1,2,3”的空白处则会   2.3对齐规则3  结构体总大小为最大对齐数每个成员变量都有一个对齐数的整数倍。  struct S1 {char c1;int i1;int i2; }; 对于上述的结构体例子应用到规则3其实就已经结束了因为规则4是针对嵌套结构体的。 规则3含义 当结构体中的最后一个成员被正确存放后结构体的总大小并非简单地等于从第一个成员偏移量为0的位置到最后一个成员最后一个字节的长度。而是首先判断出所有成员中对齐数中的最大对齐数c1对齐数是 1i1 和 i2 对齐数都是 4因此整个结构体成员中的最大对齐数是 4.最后如果 从第一个成员偏移量为0的位置到最后一个成员最后一个字节的长度不是 最大对齐数 4 的整数倍则整个结构体占据的总内存需要从最后一个字节继续延伸直到整个结构体大小是 4 的整数倍。 上个例子中最后一个成员 i2 成员存储好之后最后一个字节的位置已经在 偏移量为 11 的位置处了此时整个结构体变量的总大小已经是 12 了12是 最大对齐数 4 的整数倍了所以无需延伸上述结构体S1类型的总大小就是12字节。  2.4对齐规则4 如果嵌套了结构体的情况嵌套的结构体对齐到自己的最大对齐数的整数倍处结构体的整体大小是所有最大对齐数含嵌套结构体的对齐数的整数倍。   对齐规则4 其实跟 对齐规则3类似只不过一个判断成员变量的对齐数一个是 整个结构体的最大对齐数。 这里我们看一个新的例子 S2结构体大小为 20 字节 struct S1 {char c;int i1;int i2; };struct S2 {char a;struct S1 s1; //嵌套结构体char b; }; 3. 实战  接下来会再整一个综合的例子不再做出详细解释看图分析即可。 S1的内存分布 a的对齐数是4b的对齐数是1d的对齐数是8因此 S1整个结构体的最大对齐数是8总体大小为16字节。  S2的内存分布  ch 的对齐数是1s1 的对齐数是8 i 的对齐数是4因此S2结构体类型最大对齐数是8.
http://www.lakalapos1.cn/news/19888/

相关文章:

  • 网站流量的作用wordpress有什么有趣的插件
  • 深圳网站公司制作抖音小程序开发者平台
  • 点样做网站wordpress调整meta
  • 有什么网站可以做外贸静态网页制作案例
  • 手机网站有什么中山网上办事大厅
  • php购物网站开发设计保证量身定制的营销型网站
  • 海口网站设计微信自助下单小程序
  • 网站建设都有什么栏目域名注册是什么意思
  • 黑龙江省网站建设wordpress tag__in
  • 诚信企业品牌网站建设滨州聊城网站建设
  • 汕头seo公司网络推广优化工具
  • 单位网站改版安徽省建设工程信息管理平台
  • 做条形图的网站怎么做网站访问统计
  • 乐山做美食推荐的网站商丘网站建设aliapp
  • 超炫html5网站模板建设电子商务网站必须首先确定的是
  • 信誉好的东莞网站推广四川通江县住房和建设局网站
  • 上海集团网站建设wordpress多站点 缺点
  • 政务门户网站建设的意义外包app开发定制
  • 圣矢网络重庆网站建设优化推广公司做电商网站哪家好
  • 免费网站建设 godaddy购物网站开发 英文文献
  • 网站开发如何记账马可波罗网介绍
  • 建设人才服务信息网国家网站么wordpress 加载排版
  • 校园网建设网站特色.net 快速网站开发
  • 快速做自适应网站湖南网站建设 地址磐石网络
  • 怎么样管理网站免费网站代理
  • 清河做网站做外贸哪个网站比较好
  • 做美食教程的网站点击一个网站跳转到图片怎么做的
  • 设计网站公司好评y湖南岚鸿ok深圳seo优化外包公司
  • 网站百度收录查询网站建设服务商排名
  • 网站设计制作的服务和质量dede网站后台