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的判断时,结构体变量也是使用成员变量中最长类型,结合上边几条规则,这个其实很好理解的)

  • 相关阅读:
    更改开机运行级别
    三个路由的路由表信息
    网络
    网卡配置文件与网络命令显示不一致
    使CentOS7恢复网卡传统命名
    删除CentOS7的虚拟网卡
    将克隆的eth3和eth4改为eth0和eth1
    单臂路由--1个物理网卡绑定多个IP地址
    洛谷P1098 字符串的展开
    洛谷P1086 花生采摘
  • 原文地址:https://www.cnblogs.com/InductiveSorting-QYF/p/10815717.html
Copyright © 2011-2022 走看看