zoukankan      html  css  js  c++  java
  • struct结构体内存大小

    转自http://www.cnblogs.com/xieyajie/p/8094788.html

    概括:

    一. 基本原则

    1. struct中成员变量的声明顺序,与成员变量对应的内存顺序是一致的;

    2. struct本身的起始存储地址必须是成员变量中最长的数据类型的整倍数,注意是最长的数据类型,而不是最长的变量(对于数组只看类型不看元素个数)

    3. 内存对齐与编译器设置有关。

    二. 计算规则(以下的所有规则,必须同时满足,并不是满足其中一条即可

    1. 每个成员变量相对于struct起始地址的偏移量,必须是成员变量自身类型长度的最小整倍数

    2. 结构体内存大小,必须是成员变量中类型长度最长者的整倍数,如果不是,则在最后一个成员变量后补齐

    3. 成员变量是数组时,按照类型长度对齐,而不是数组长度对齐(如int a[10]的类型长度为int型,即为4)

    4. 成员变量是结构体时,根据struct基本原则,其存储偏移量必须是成员变量最长的数据类型的整倍数(当进行规则2的判断时,结构体变量也是使用成员变量中最长类型,结合上边几条规则,这个其实很好理解的)

  • 相关阅读:
    Hdu 2389 二分匹配
    Hdu 1156
    Hdu 1255
    Hdu 1542
    python 中初始化二维数组的方法
    chrome扩展小试
    浏览器的重绘与重排
    js执行环境相关
    js 触摸事件
    js柯里化的一个应用
  • 原文地址:https://www.cnblogs.com/InductiveSorting-QYF/p/10815717.html
Copyright © 2011-2022 走看看