![]() |
1
4
指定这在您的架构上应该如何表现的文档是 here, in the i386 System V psABI (当前版本) here x86 标记wiki)。在这本书中,我们可以看到double的所需对齐是4。但它有一个有趣的注释:
GCC不希望违反结构的ABI(其中对齐非常相关),因此它正确地将4对齐用于结构内部的双精度对齐。
C11没有指定
C标准的措辞对于ABIs中应该发生的事情不是很具体,其中结构内部的类型的对齐度低于结构外部的类型。
After careful reading of the standard's wording
和一些争论,gcc开发人员决定
This mailing list post
GNU C的
叮当作响,
on the Godbolt compiler explorer
使用gcc7.2和clang4.0。卸下
gcc's
确保生成的结构确实具有同样大的对齐需求(
|
![]() |
Jamboree · 在C++17中,分配器是否处理对齐类型? 7 年前 |
![]() |
afiori · 访问结构并集中结构的第一个字段 7 年前 |
![]() |
BrodieG · R\u分配和对齐注意事项 7 年前 |
![]() |
dempzorz · 将任意元素存储在连续内存中 8 年前 |
![]() |
kgbook · 关于内存对齐的一些困惑 8 年前 |
![]() |
vandale · x64程序集中的堆栈对齐 11 年前 |