Abh*_*ain 5 c++ gcc visual-c++ cl struct-member-alignment
在 msdn for cl 编译器选项 /Zp 上,提到“在 8 字节边界(默认)上打包结构”。这是否意味着如果数据类型的大小 > 8 字节,默认情况下(没有编译器选项或编译指示包)它不会自然对齐,而是具有 8 字节对齐。如果是,GCC/clang 是这种情况吗?
我检查了 GCC,使用-fpack-struct和__uint128_t,它没有任何这样的默认值。例如sizeof(tStruct)是 32 和 24:
struct tStruct {
uint64_t a;
__uint128_t b;
};
Run Code Online (Sandbox Code Playgroud)
我无法在 Windows 上进行检查,因为它不提供任何大于 8 字节的数据类型。
| 归档时间: |
|
| 查看次数: |
1839 次 |
| 最近记录: |