gpt4 book ai didi

c++ - alignas() 对 sizeof() 的影响 - 强制性的?

转载 作者:行者123 更新时间:2023-12-01 14:15:59 25 4
gpt4 key购买 nike

这个程序:

struct alignas(4) foo {};
int main() { return sizeof(foo); }

返回 4,包含 GCC 10.1 和 clang 10.1,以及 icc 19.0.1。

这让我想知道 - alignas() 是强制性的吗?影响 sizeof()这边走?即增加尺寸超出结构最初的尺寸?或者 - 这种变化只是实现的特权吗?

最佳答案

is it mandatory for alignas() to affect sizeof() this way? i.e. increase the size beyond what the structure would originally be sized at?



是的。类的大小是根据该类型数组的元素之间的距离定义的。数组元素之间没有填充(类型内的填充除外,因此是大小的一部分)。如果大小小于对齐方式,则相邻数组元素不可能满足该对齐方式。

大小必须至少与对齐一样多,并且必须是对齐的倍数,对齐始终是 2 的幂。

关于c++ - alignas() 对 sizeof() 的影响 - 强制性的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61856747/

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