Влияйте на выравнивание классов, чтобы плотно упаковывать переменные.C++

Программы на C++. Форум разработчиков
Anonymous
Влияйте на выравнивание классов, чтобы плотно упаковывать переменные.

Сообщение Anonymous »

Предположим, такие структуры:

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

struct A {
int64_t x;  // 8 bytes
int32_t y;  // 4 bytes
// 4 padding bytes
};

struct B {
A a;        // 16 bytes
int32_t z;  // 4 bytes
// 4 padding bytes (alignof(B) == alignof(A) == 8)
};

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

static_assert(sizeof(B) == 24);  // 8 useless bytes!
Есть ли способ поместить z внутри заполнения A (некоторые атрибуты)?


Подробнее здесь: https://stackoverflow.com/questions/784 ... es-tightly

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