/* Вот как можно реализовать предложенный автором алгоритм :*/
void routine (BOOL b,BOOL key)
{
for(;;)
{
if(key){B;C;key=FALSE;}
else
{
if(b) {B;C;}
else return;
}
}
}
...
...
if(a){A;C;}
routine (b,FALSE);
for(;;) { if(c){E;break;} else {D;routine (b,TRUE);} }
...