ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
915537 Топик полностью
VLLV (12.04.2019 16:44, просмотров: 228) ответил NAUT на а где такое подсмотрели, как называется механизм? биты выставленные по условиям потом разворачиваются в результат?
В этом проекте биты не разворачиваются, а используются внутри функций обработки состояния просто с помощью маски. Альтернативный вариант такой:  допустим, эти биты в found_event char GetEvent(void) { char i; char my_mask=(char)1; for (i=1; i<=kbdQty-1; i++) { if (found_events&my_mask) { found_events&=~my_mask; return(i); } my_mask=my_mask<<1; } return(0); } функция возвращает номер события, привязанный к биту условия. Тогда обработка состояния происходит так: function[actual_state][GetEvent()]. Но я от этого сейчас отказался, я использовал такой вариант, когда в одном приборе было несколько одинаковых логических автоматов. С одним автоматом нагляднее писать через switch