тут очень надо.
                  
                  
                  Есть структура
                  
                  
                  typedef struct crsf_channels_s
                  
                  
                  {
                  
                  
                      unsigned ch0 : 11;
                  
                  
                      unsigned ch1 : 11;
                  
                  
                      unsigned ch2 : 11;
                  
                  
                      unsigned ch3 : 11;
                  
                  
                      unsigned ch4 : 11;
                  
                  
                      unsigned ch5 : 11;
                  
                  
                      unsigned ch6 : 11;
                  
                  
                      unsigned ch7 : 11;
                  
                  
                      unsigned ch8 : 11;
                  
                  
                      unsigned ch9 : 11;
                  
                  
                      unsigned ch10 : 11;
                  
                  
                      unsigned ch11 : 11;
                  
                  
                      unsigned ch12 : 11;
                  
                  
                      unsigned ch13 : 11;
                  
                  
                      unsigned ch14 : 11;
                  
                  
                      unsigned ch15 : 11;
                  
                  
                  } PACKED crsf_channels_t;
                  
                  
                  Хочется к этим chN обращаться по их номеру. Как я понимаю, я мог бы этого достигнуть, использовав UNION с массивом unsigned[16]
                  
                  
                  Вопросы:
                  
                  
                  1. Можно ли обойтись без юниона?
                  
                  
                  2. Смущает слово PACKED - что оно делает и не сместятся ли данные структуры относительно массива?
                  
                  
                  3. Смущает тип unsigned. Обычно привык задавать строгую длину. Есть ли гарантия что массив и структура будут действительно наложены друг на друга?
                  
                  
                
Не надо по номеру
Значит придется писать мегасвитч. От него хотел уйти
Это не массив это набор битовых полей. Никак к ним по номеру не обратиться
Там что, данные лежат не в упорядоченном виде?
Нет. Это если коротко
Что такое упорядоченный вид у тебя?
Тем не менее ты можешь написать функцию с индексом на входе и значением поля на выходе, которая будет выдавать по индексу нужное поле. Внутри естественно будет switch
Обсуждают сегодня