Можно ли указать вложенное выравнивание для структуры и его членов в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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