[an error occurred while processing this directive]
Я ее глобальной сделал - все заработало. Но ошибка не связана (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Беня 12 декабря 2002 г. 14:30
В ответ на: Может быть объявить переменную как volatile ? отправлено 0men 12 декабря 2002 г. 13:47

не связана с повторным входом в программу и сохранением переменной и т. д. - локальную переменную и не должен компилятор сохранять (на ее месте позже будет какая-нибудь другая локальная переменная) и это была бы ошибка программиста.
Просто что-то в виде :
double global_var ;
int a, b ; // глобальные переменные

// а это кусочек кода внутри какой-то функции :
{
long l ; // локальная переменная
...
}
{
double d ; // еще одна локальная переменная
d = ... ; // что-то присвоили
a = b ; // что-то другое делаю, но не трогаю d
global_var = d ; // global_val присваивается ерунда, а не то
// что я раньше присвоил переменной d
}

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

Это уже третья ошибка, на которую я нарвался в HI-TECH PICC. Хотя компилятор хороший.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru