首页 > 其他分享 >结构体(四)

结构体(四)

时间:2023-03-16 10:59:02浏览次数:25  
标签:整数倍 偏移量 分配 体中 成员 结构

结构体的对齐规则

  自动对齐规则

               

 

    1、确定分配单位(一行分配多少个字节)

      结构体中最大基本类型长度决定

    2、确定成员的偏移量

      成员的偏移量 = 成员自身类型的整数倍

    3、收尾

      结构体的总大小 = 分配单位的整数倍

  结构体嵌套结构体自动对齐规则

    1、确定确定分配单位(一行分配多少个字节)

      所有结构体中最大的基本类型长度决定

    2、确定成员的偏移量

      普通成员偏移量 = 成员自身类型的整数倍

      被嵌套的结构体整体偏移量 = 该结构体中最大的基本类型的整数倍

    3、收尾

      结构体成员大小 = 该结构体中最大的基本类型的整数倍

      结构体的总大小 = 分配单位的整数倍

                                       

 

 强制对齐

  #pragma pack(value) 时指定对齐值value。注意value的值为1、2、4、8、16

  1、确定分配单位(一行分配多少个字节)

    分配单位 = min(结构体中最大的基本类型, value)

  2、确定成员的偏移量

    成员的偏移量 = 成员自身类型的整数倍

  3、收尾

      结构体的总大小 = 分配单位的整数倍

                             

 

标签:整数倍,偏移量,分配,体中,成员,结构
From: https://www.cnblogs.com/yachifeng/p/17221467.html

相关文章

  • 结构体(三)
    结构体在堆区,结构体的指针成员指向堆区           结构体指针数组在堆区,结构体在堆区,结构体指针成员在堆区       ......
  • 苹果支付返回结构变
    验单返回数据格式老版本IOS返回{"receipt":{"original_purchase_date_pst":"2016-12-0301:11:01America/Los_Angeles","purchase_date_ms"......
  • 结构体(二)
    结构体数组本质是数组,每个元素是结构体        结构体指针变量本质是指针变量,保存的是结构体变量的地址        结构体的指针......
  • 数组模拟环形队列java(数据结构与算法)
    思路:背景队列有两种实现方式:1、数组,2、链表在数组实现队列时,有的教科书中只说了队列满的条件是(rear+1)%manSize=front这个公式真让人摸不着头脑原来:这是数组模拟环......
  • 1.1.4操作系统(运行机制与体系结构)
    目录​​1.目录​​​​2.运行机制​​​​ 3.操作系统内核​​​​4.操作系统的体系结构​​1.目录2.运行机制   3.操作系统内核  4.操作系统的体系结构    ......
  • 结构体(一)
    结构体的定义将多种数据结构封装在一起,形成新的结构叫结构体结构体特点:每种数据结构都有自己的独立空间结构体关键字:struct结构体类型的定义方式   ......
  • MySQL学习(四)---->InnoDB数据页结构
    页是InnoDB管理存储空间的基本单位,一个页的大小一般是16KB。InnoDB为了不同的目的而设计了许多种不同类型的页,比如存放表空间头部信息的页,存放InsertBuffer信息的页,......
  • 【Java笔记6】流程结构
    一.顺序结构按照次序一行接一行执行。二.分支结构有选择的执行某一部分代码或者不执行某一部分代码。1.if结构语法:if(结果为boolean类型的条件){ //被条件执行......
  • 01. 数据结构概述
    一、什么是数据结构  数据结构(DataStructure)是计算机中存储、组织数据的方式,它是数据对象、以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可......
  • CVPR2023 | 集成预训练金字塔结构的Transformer模型
    前言 本文提出了一种新的预训练模型架构(iTPN),该架构由多个金字塔形的Transformer层组成。每个层都包含多个子层,其中一些是普通的self-attention和feed-forward层,而另一些......