【发布时间】:2021-07-30 08:27:58
【问题描述】:
给定以下 C++ 类:
class X {
public:
uint8_t a;
uint32_t b[256] __attribute__((aligned(32)));
};
当X 的实例可能是字对齐时,编译器如何确保b 的存储是32 字节对齐的? aligned 属性是否仅指定相对于对象实例起始地址的对齐方式?如果是这样,使b 32 字节相对于地址空间对齐的正确方法是什么?我应该使用class alignof(32) X {...} 简单地指定对象实例对齐方式吗?
【问题讨论】:
标签: c++ class oop memory-management alignment