标签: c++ alignment member alignas
我使用以下命令在一个类中将4个元素的float数组对齐16个字节
class Foo { // ... some code private: alignas(16) float array[4]; };
变量未对齐。这是为什么?我的假设是对齐方式取决于Foo实例的对齐方式,因为成员变量的内部偏移量是静态的,不会在运行时进行调整。那是正确的还是我错过了什么?因此,要解决的一件事是将Foo与>=16对齐,以便内部偏移量固定?
Foo
>=16