gpt4 book ai didi

c++ - 内存对齐保证

转载 作者:行者123 更新时间:2023-11-30 03:27:19 27 4
gpt4 key购买 nike

下面的代码可以交叉编译吗?

struct Foo {
alignas(1) char c1;
alignas(1) char c2;
alignas(4) int i;
};
static_assert(sizeof(Foo) == (sizeof(int) + 4), "No cross-compilable");

换句话说,是否保证 sizeof(Foo) == (sizeof(int) + 4) 对于任何架构/平台?

最佳答案

不保证。这适用于当今的许多体系结构,但在具有 8 字节 int(在 8 字节边界上对齐)的系统上,这将不起作用。但是,在那种情况下,您应该获得编译器诊断,因为您正在尝试对 int 应用不太严格的对齐方式;参见 [dcl.align]。

关于c++ - 内存对齐保证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47489763/

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