Добрый день! Думаю как правильнее сделать обработку такой структуры. Имеет цклое число из 9 бит с неправильным порядком байтов. При этом оно разбивается на две части - первая (i9m_1) размером в один бит. Тут лежит знак. Во второй (i9m_0) младшая часть. Все работает, но компилятор ругается на i9m_1 «warning #109-D: signed bit field of length 1» Можно, конечно, запретить варнинг, но мне не нравится. Как правильнее обрабатывать такие ситуации?
#pragma pack(push,1)
typedef struct {
int16_t i9m_1:1;
uint8_t _reserved_25:7;
uint8_t i9m_0;
#endif
} wire_TEST_MSG_2_t;
#define _GET_8_i09(signal) (signal##_0 | (( int16_t)signal##_1 << 8))
//Получаем значение
int16_t value = (int16_t)_GET_8_i09(wire_data->i9m);
#pragma pack(pop)