Как работает данный синтаксис - C (СИ)
Формулировка задачи:
Добрый день, подскажите пожалуйста, как работает синтаксис:
Здесь работа идет с протоколом MODBUS. Есть общий массив данных куда пишет микроконтроллер и откуда читает ПК - MB_MEMORY. Для удобства номера ячеек дефайнятся, то есть в ячейке MB_MEMORY[RM_INPUT] лежат "упакованные" 9 бит состояния цифровых входов, которые оформляются как структура. Интересует, как работает данная строка
И как его использовать в дальнейшем? Спасибо
#define RM_INPUT 0x00B1 // Цифровые входы typedef __packed struct { u16 fDoor: 1; u16 fMag1Ans: 1; u16 fMag2Ans: 1; u16 fStartButton: 1; u16 fStopButton: 1; u16 fButton3: 1; u16 fButton4: 1; u16 fButton5: 1; u16 fDIN4: 1; } DiscrInputRegStruct; #define DiscInputReg (*(DiscrInputRegStruct*)(MB_MEMORY+RM_INPUT))
#define DiscInputReg (*(DiscrInputRegStruct*)(MB_MEMORY+RM_INPUT))
Как я понял тут создается указатель на элемент с адресом нулевого элемента массива + RM_INPUT, а дальше не понял
Решение задачи: «Как работает данный синтаксис»
textual
Листинг программы
if(MB_MEMORY[RM_INPUT] & (1 << 2)) {/*do smth*/}
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д