当前位置: 移动技术网 > IT编程>开发语言>C/C++ > C++内存对齐

C++内存对齐

2018年08月22日  | 移动技术网IT编程  | 我要评论

庚澈h文,C0000218,烈火章鱼

大家都用过struct,但是很少有人考虑过内存的问题,如果数据量很大那么内存对齐就很重要了

1、看个例子

struct person
{
    qstring str;
    int height;
    long long ll;
    double dd;
    qstring str2;
};

int main()
{
    qdebug() << sizeof(person);
}
输出结果:32

2、修改struct

#pragma pack(1)
struct person
{
    qstring str;
    int height;
    long long ll;
    double dd;
    qstring str2;
};

int main()
{
  qdebug() << sizeof(person);
}
输出结果:28

3、添加了#pragma pack(n)后规则就变成了下面这样:

     1、 偏移量要是n和当前变量大小中较小值的整数倍

     2、 整体大小要是n和最大变量大小中较小值的整数倍

     3、 n值必须为1,2,4,8…,为其他值时就按照默认的分配规则

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网