Цитата(beer_warrior @ Jul 4 2006, 23:14)
Локальная переменная на то и локальная, что ее время жизни функция в которой она объявлена. При входе она создаеться в стеке, при выходе уничтожается. Для вашего слуая придуман модификатор static, который позволяет сохранять значение в промежутках между вызовами.
Наверное я неправильно объяснил. Локальная переменная изменяется ИЗВНЕ пока я нахожусь ВНУТРИ функции, где она объявлена! Короче, вот код:
Код
unsigned char c;
......
c = 2;
while(c)
{
if(DeviceFlags.second_flg)
{
DeviceFlags.second_flg = 0;
--c;
}
}
И пока я жду установки флага, переменная "с" изменяется!
Кстати, посмотрел в отладчике и обнаружил интересную вещь. При входе в прерывание укзатель стека (Y) равен 0x00E7, т.е. указывает не на свободное ОЗУ