Цитата(Зураб @ Aug 16 2010, 15:25)

А как в этом случае организовать срабатывание по перепаду из лог.1 в лог.0? Можно, конечно, ввести дополнительную переменную, но не хочется.
Такие вещи делаются с помощью конечных автоматов (машина состояний). Выглядит примерно так:
Код
static int state = 0;
switch(state)
{
case(0):
if(state1_cond)
{
state=1;
/* Kакие-либо действия, корторые необходимо выполнять при переходе
* из нулевого состояния в первое
*/
}
break;
case(1):
if(state0_cond)
{
state=0;
}
break;
default:
/* Что-то пошло не так, надо сбросить всю машину */
state=0;
break;
}
И вообще нечего жалеть память. Чем меньше кода, тем меньше мест где могут появиться ошибки. Чем проще решение тем меньше вероятность ошибиться в его реализации, и меньше сил затрачивается на отладку и дальнейшее сопровождение, и стабильнее результирующий продукт.
Машины состояний вообще мощный инструмент, рекомендую ознакомиться
c этим
Сообщение отредактировал Ko4egap - Aug 17 2010, 11:58