_Pasha 0 8 декабря, 2013 Опубликовано 8 декабря, 2013 · Жалоба Нет, volatile не использую. Ну вот и ответ на вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
WHILE 0 8 декабря, 2013 Опубликовано 8 декабря, 2013 · Жалоба Ну вот и ответ на вопрос. ТС так и не указал используемый компилятор.Но судя по приведенным кускам кода-это CV. А он не такой резкий в оптимизации как тот-же ЯР и не выкидывает без предупреждения не- volatile переменные в прерываниях.Кажется,квалификатра volatile там и вовсе нет... Но я бы не заметал непонятки под ковер, а постарался-бы все-таки разобраться до конца, бо неизветно,не всплывут-ли они потом при модификации кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndreyVN 0 9 декабря, 2013 Опубликовано 9 декабря, 2013 · Жалоба ТС так и не указал используемый компилятор.Но судя по приведенным кускам кода-это CV. А он не такой резкий в оптимизации как тот-же ЯР и не выкидывает без предупреждения не- volatile переменные в прерываниях.Кажется,квалификатра volatile там и вовсе нет... Но я бы не заметал непонятки под ковер, а постарался-бы все-таки разобраться до конца, бо неизветно,не всплывут-ли они потом при модификации кода. Да, действительно, Code Vision (версию сейчас не назову), на модификатор volatile CV ошибки не выдает, но, возможно, никаких действий не предпринимает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 9 декабря, 2013 Опубликовано 9 декабря, 2013 · Жалоба Ну вот и ответ на вопрос.+1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 9 декабря, 2013 Опубликовано 9 декабря, 2013 · Жалоба А он не такой резкий в оптимизации как тот-же ЯР и не выкидывает без предупреждения не- volatile переменные в прерываниях.А никто не говорил, что переменная выкидывается в прерывании. И ИАР не выкидывает. Выкидывается ее чтение в основном цикле. И выкидывается совершенно законно, и предупреждать никто не обязан - иначе вы получали бы ворох предупреждений на каждую строчку кода. Да, действительно, Code Vision (версию сейчас не назову), на модификатор volatile CV ошибки не выдает,Было бы удивительно, если бы он ругался на описанное в стандарте языка ключевое слово. но, возможно, никаких действий не предпринимает.Полагаю, что вы ошибаетесь. Иначе практически все программы под этим компилятором вели бы себя так же непредсказуемо, как ваша. Даже несмотря на то, что CV - компилятор "языка, похожего на C", вам обязательно стоит потратить лишние несколько минут чтобы разобраться, что дает ключевое слово volatile и когда его просто необходимо применять. Во избежание в дальнейшем траты кучи времени на "глюки компилятора". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться