Как я могу упаковать структуры/объединения побитно в GCC и VC++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу упаковать структуры/объединения побитно в GCC и VC++?

Сообщение Anonymous »

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

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

struct SN {
uint8_t a;
uint8_t b : 4;
}
Теперь предположим, что у нас есть массив этих структур, например std::array , и количество элементов равно кратному обратному коэффициенту смещения битов в байте (например, 1/(4/8) = 1/0,5 = 2 -> 4 кратно 2)
Как я могу упаковать структура/объединение в GCC и VC++ побитно, поэтому с точки зрения памяти массив будет выглядеть так:

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

[8 bits]
[4+4 bits]
[8 bits]
[8 bits]
[4+4 bits]
[8 bits]
вместо

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

[8 bits]
[4 bits + 4 bit padding]
[8 bits]
[4 bits + 4 bit padding]
[8 bits]
[4 bits + 4 bit padding]
[8 bits]
[4 bits + 4 bit padding]
Благодарю за вашу помощь!

Подробнее здесь: https://stackoverflow.com/questions/798 ... gcc-and-vc
Ответить

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

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

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

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

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