Во встроенной системе, работающей под управлением freertos, есть ли причина, по которой у вас не будет блокирующей функции в случае оператора switch?
Например, поток, проходящий через конечный автомат и один из Состояния - это ожидание уведомления о задаче.
Как правило, я делал это с помощью if-else, но есть ли какое-то преимущество или недостаток в том, чтобы сделать его регистром переключения?
Использование cpp17 и избегание STL.
Редактировать: функция блокировки, т. Е. Функция, которая работает вечно до получения уведомления, например, xTaskNotifyWait (...)
Пример:
switch (state)
{
case state1:
foo();
break;
case state2:
xTaskNotifyWait(...);
};
vs
if (state == state1)
{
foo();
}
else if (state == state2)
{
xTaskNotifyWait(...);
}
TIA