zoukankan      html  css  js  c++  java
  • 关于结构体的大小

    第一步是要知道结构体大小的计算方式:

        结构体大小等于最后一个成员的偏移量加上最后一个成员的大小,

        偏移量指的是结构体变量中成员的地址 – 结构体变量地址的差, 第一个成员的偏移量为0

    下面代码

    TRecord2 = record
        a: Integer;
        b: Integer;
        c: Integer;
      end;
    
     {$A8+}
     TRecord1 = record
        a1: Byte;
        a2: Integer;
        a3: Int64;
        a4: Byte;
        a5: Word;
        case Integer of
          0: (e1: TRecord2);
          1: (e2: Int64);
      end;

    直接用数据说话吧:

    下面是每个成品的偏移量

    a1:0, a2:4, a3:8, a4:16, a5:18, e1:24, e2:24, size:40

    其实可以画一个格子<下面每个格子代表对齐的字节数>

    a1, a2 a3 a4,a5 e1 e1      

    还有一种

    TRecSingle = record
      a1: Byte;
    end;

    这种大小是1

  • 相关阅读:
    Safari-IoS调试
    前端加密技术
    gulp入门
    xss攻击
    xml 解析
    python 基本语法
    python初识
    字节
    神奇的算式
    linux-虚拟机安装
  • 原文地址:https://www.cnblogs.com/DKSoft/p/3967427.html
Copyright © 2011-2022 走看看