Можно ли указать вложенное выравнивание для структуры и его членов в C ++?C++

Программы на C++. Форум разработчиков
Anonymous
Можно ли указать вложенное выравнивание для структуры и его членов в C ++?

Сообщение Anonymous »

Я хочу крепко упаковать структуру, но у меня был один конкретный элемент, выровненную по определенной границе. Например: < /p>

Код: Выделить всё

struct A {
char a;
int b;
} __attribute__((packed));

struct B {
char a;
int b;

int c __attribute__((aligned(64)));
} __attribute__((packed));
В этом случае, sizof (a) == 5 и sizeof (b) == 128 .
Моя цель-держать регулярные переменные члена плотно упакованными, но иметь начало C-in the 64-byte в рамках структуры. атрибут ((упакован)) на struct и атрибут ((выровнен (64))) на члене таким образом? Будет ли этот подход работать как предполагаемый, или он может привести к неопределенному поведению? Любые другие решения приветствуются. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/797 ... mbers-in-c

Вернуться в «C++»