Код: Выделить всё
struct Tuple {
unsigned int a : 4;
unsigned int b : 4;
};
[*] Компиляторы оставляют «отверстия» в структуре для обеспечения эффективного доступа к полям, что приводит к тому, что структуры занимают больше места, чем сумма их полей
Стандарт заставляет порядок полей одинаковым в исходном коде и в памяти < /li>
c и c ++-это разные языки, но это точное явление может быть замеченным на обоих языках для одного и того же куска кода. < /li>
< /ul>
, но мне показалось бы, как упаковка этих значений в одном байте была бы производительность -Benefit как размер сейчас четверть. Неправильные и дополнительные инструкции по обработке двух полей за один бит действительно будут дорогостоящими? (Например, какая -то гарантия о параллелизме или сделках, запрещающей использование двух полей за один байт)
Для чего полезны биты, если я на самом деле не могу определить поля меньше, чем байт?
< /ul>
Подробнее здесь: https://stackoverflow.com/questions/794 ... n-a-struct
Мобильная версия