Mr_Smile M Mr_Smile Регистрация 14 Июн 2013 Сообщения 73 Репутация 0 Спасибо 0 Монет 0 24 Апр 2018 #1 struct Pack { ... struct { ... byte R: 1; ... byte G: 1; ... byte B: 1; ... byte A: 1; ... } A1; ... struct { ... byte R: 1; ... byte G: 1; ... byte B: 1; ... byte A: 1; ... } A2; }; Результат: sizeof(Pack) == 2. Работаю в C++17 на MinGW 7.2.0.
struct Pack { ... struct { ... byte R: 1; ... byte G: 1; ... byte B: 1; ... byte A: 1; ... } A1; ... struct { ... byte R: 1; ... byte G: 1; ... byte B: 1; ... byte A: 1; ... } A2; }; Результат: sizeof(Pack) == 2. Работаю в C++17 на MinGW 7.2.0.
kolyan45 K kolyan45 Регистрация 1 Ноя 2013 Сообщения 84 Репутация 0 Спасибо 0 Монет 0 24 Апр 2018 #2 создай 3 структуру))) Позитивный голос 0
dimasta995 D dimasta995 Регистрация 16 Дек 2013 Сообщения 94 Репутация 0 Спасибо 1 Монет 0 24 Апр 2018 #3 Нет такой возможности Позитивный голос 0
DEniska070591 D DEniska070591 Регистрация 17 Ноя 2013 Сообщения 80 Репутация 0 Спасибо 0 Монет 0 24 Апр 2018 #4 А так например: struct A1 { unsigned R: 1; unsigned G: 1; unsigned B: 1; unsigned A: 1; }; struct B1 { A1 a1; A1 a2; }; Позитивный голос 0
А так например: struct A1 { unsigned R: 1; unsigned G: 1; unsigned B: 1; unsigned A: 1; }; struct B1 { A1 a1; A1 a2; };
cghgfh C cghgfh Регистрация 17 Ноя 2013 Сообщения 71 Репутация 0 Спасибо 0 Монет 0 24 Апр 2018 #5 По Вашему sizeof(Pack) должно быть равно 1? а sizeof(A1) тогда 0.5? С++ так не умеет Позитивный голос 0
Talant T Talant Регистрация 24 Сен 2013 Сообщения 74 Репутация 0 Спасибо 0 Монет 0 24 Апр 2018 #6 Одним из решений может быть следующее: Объявляем байт и присваиваем ему 1111 1111 А затем в цикле делаем AND к биту нашей структуры Позитивный голос 0
Одним из решений может быть следующее: Объявляем байт и присваиваем ему 1111 1111 А затем в цикле делаем AND к биту нашей структуры