加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++数据量很大那么内存对齐就很重要了

发布时间:2020-12-15 04:55:40 所属栏目:百科 来源:网络整理
导读:大家都用过struct,但是很少有人考虑过内存的问题,如果数据量很大那么内存对齐就很重要了 1、看个例子 struct person { QString str; int height; long long ll; double dd; QString str2; }; int main() { qDebug() } 输出结果:32 2、修改struct #pragma

大家都用过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…,为其他值时就按照默认的分配规则

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读