• 结构体对齐


    一:结构体数据成员对齐的意义:

    实际的计算机系统对基本类型数据在内存中的位置有限制,要求这些数据的起始地址是某个数K的整数倍,这就是所谓的内存对齐,这个K称为该数据类型的对齐模数

    这种要求可以简化处理器与内存之间传输系统的设计,还可以提升读取的速度

    二:结构体对齐两方面含义

    结构体总长度

    结构体内各数据成员的内存对齐

    三:结构体大小的计算方法过和步骤

    1):将结构体内所有数据成员的长度相加

    2):各数据成员为了内存对齐而填充的字节数加到总长度中

    3):结构体对齐,结构体的总长度也应该是某个模数的整数倍,这个模数是  min(结构体中最长数据的长度,pragma pack)

    4):在windows和linux系统中,模数的长度不同

    例子:

    #ragma pack(8)

    strucy

    {

    char a;

    long double b;

    int c;

    }

    WINDOWS下

    1+4+8 = 13

    13+7 = 20

    20+4 = 24

  • 相关阅读:
    Python自学笔记(12day)
    Python自学笔记(11day)
    Python自学笔记(10day)
    Python自学笔记(9day)
    Python自学笔记(8day)
    form标签的使用
    form标签的使用法
    img标签的使用方法
    <a></a>标签的使用
    html的标签
  • 原文地址:https://www.cnblogs.com/buptlyn/p/3662188.html
Copyright © 2020-2023  润新知