ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
1286690 Топик полностью
Nikolay_Po (25.02.2023 10:49, просмотров: 291) ответил Cкpипaч на Не ответ, а подветка. Про goto. Полез тут, по случаю, посмотрел свой старый код управления разными жопогрейками.
Я разбираю возможные состояния автомата в switch(). Если где-то проблема, в конкретном кейсе принимаю неотложные меры и взвожу соответствующий бит ошибки в слове ошибок. Выход из switch() штатный, без goto. 

Дальше уже срабатывает своя машина состояний обработчика ошибок, которая принимает необходимые меры.

В общем, у меня два автомата - автомат процесса и автомат ошибок. Первый только генерирует ошибки. Второй - разгребает, в том числе и принудительно меняя состояние первого. Ну, и до кучи вместо внезапных goto, у меня ещё работают обработчики прерываний, которые тоже могут влиять на состояния и ошибки этих двух автоматов.