gpt4 book ai didi

C++ 内存对齐——我们应该关心吗?

转载 作者:可可西里 更新时间:2023-11-01 16:37:15 25 4
gpt4 key购买 nike

<分区>

考虑在具有以下类型对齐的 x64 位 Windows 操作系统上工作:

C++ build in types alignments on my pc

据我所知,做这样的事情是非常糟糕的:

struct X_chaotic
{
bool flag1;
double d1;
bool flag2;
double d2;
bool flag3;
double d3;
//... and so on ...
};

根据 C++ Alignment, Cache Line and Best PracticeData structure alignment ,写这个应该更好/更快并且更紧凑:

struct X_alignOrder
{
double d1;
double d2;
double d3;
//... all other doubles ...
bool flag1;
bool flag2;
bool flag3;
//... all other bools ...
};

成员按照对齐大小的顺序声明,从最高对齐开始。

可以肯定地说按对齐大小对数据成员的声明排序是个好主意吗?你会说这是最佳实践吗?还是没有区别?

(我听说编译器不能重新排列定义的顺序,因为 C++ 标准,这甚至适用于在类的访问说明符 block 中声明的所有数据成员)

因为我从未在 Scott Meyers 的书中或 Bjarne Stroustrup 的书中读到过这方面的内容,所以我想知道我是否应该开始通过日常工作的对齐方式重新排序数据声明。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com