大家都用过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…,为其他值时就按照默认的分配规则
继续阅读与本文标签相同的文章
上一篇 :
Perl的数值和字符串实例讲解
-
给大家推荐一本深入学习 Kotlin 的书
2026-05-18栏目: 教程
-
终于把Apollo存储加密这件事搞定了
2026-05-18栏目: 教程
-
Excel导入导出
2026-05-18栏目: 教程
-
18段代码带你玩转18个机器学习必备交互工具
2026-05-18栏目: 教程
-
Istio的架构设计
2026-05-18栏目: 教程
