Цитата(rezident @ Aug 16 2008, 01:34)

ОК. Пекитесь дальше раз вам так хочется

Спасибо заразрешение

Цитата
Но break при этом попадал в одну функцию (loop), а continue в другую (main).
Э... Похоже Вам надо ознакомится с continue...
Цитата
Вы бы скопипастили мой вариант примера и исправили его по своему разумению, чтобы стало понятно, что именно вы хотели там "нераспространить"?
Как-бы я все строчки указал... Ладно, не претендуя на изменение общего подхода к делу....
Код
volatile bint flag;
void loop( void )
{ for( int i=360; i; i-- )
{ if( flag )
break;
// Ну вообще-то тут return( TRUE ) должен быть, а не break, дабы не
// заниматься лишними контролями в main() и не размазывать работу с flag по нескольким функциям
// .......
// ........
// .......
}
}
void main( void )
{
for(;; )
{ loop();
if( flag )
{ flag--;
afterINT();
continue;
}
// .....
// .....
// .....
}
}
#pragma vector=INT0_VECTOR
__interrupt void INT0_ISR(void)
{ ++flag;
// ......
// ......
// ......
}
Теперь без break и дублироания проверки flag
Код
bint loop( void )
{ for( int i=360; i; i-- )
{ if( flag )
{ flag--;
return( TRUE );
}
// .......
// ........
// .......
}
return( FALSE );
}
void main( void )
{
for(;; )
{ if( loop() )
{ afterINT();
continue;
}
// .....
// .....
// .....
}
}
Цитата(rezident @ Aug 16 2008, 01:34)

aka ANSI C не было.
Что совершенно не мешает использовать TRUE/FALSE для четкого указания
читающему, что эта переменная принимает только два значения.
Цитата(Aesthete Animus @ Aug 16 2008, 01:12)

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