M Mr_Smile Регистрация 14 Июн 2013 Сообщения 70 Репутация 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.
K kolyan45 Регистрация 1 Ноя 2013 Сообщения 78 Репутация 0 Спасибо 0 Монет 0 24 Апр 2018 #2 создай 3 структуру))) Позитивный голос 0
D dimasta995 Регистрация 16 Дек 2013 Сообщения 86 Репутация 0 Спасибо 1 Монет 0 24 Апр 2018 #3 Нет такой возможности Позитивный голос 0
D DEniska070591 Регистрация 17 Ноя 2013 Сообщения 76 Репутация 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; };
C cghgfh Регистрация 17 Ноя 2013 Сообщения 66 Репутация 0 Спасибо 0 Монет 0 24 Апр 2018 #5 По Вашему sizeof(Pack) должно быть равно 1? а sizeof(A1) тогда 0.5? С++ так не умеет Позитивный голос 0
T Talant Регистрация 24 Сен 2013 Сообщения 67 Репутация 0 Спасибо 0 Монет 0 24 Апр 2018 #6 Одним из решений может быть следующее: Объявляем байт и присваиваем ему 1111 1111 А затем в цикле делаем AND к биту нашей структуры Позитивный голос 0
Одним из решений может быть следующее: Объявляем байт и присваиваем ему 1111 1111 А затем в цикле делаем AND к биту нашей структуры