-
- Зачем отключать варнинги и потом спать ворочаясь? Если гора не идет к Магомедову, то можно самому проэмулировать ситуацию корректно: организовать локальный блок, в нем объявить локальную переменную-копию одной из волатильных. И теперь можно Олдфаг(143 знак., 30.04.2016 21:48, )
- да так и сделал, только это... не спортивно, ситуация стандартная, загрузка буфера по прерыванию, переменная, индекс буфера, изменяется в прерывании (она соответственно волатильна), регистр ввода вывода волатилен по умолчанию, конечно некоторые IBAH c чужого компа(35 знак., 30.04.2016 22:17, )
- Сделать локальную копию - все равно, что отказаться от волатильности. Свой смысл тогда она потеряет, т.к. сможет измениться в промежутке между копированием и использованием. - Ксения(30.04.2016 22:01)
- Не понял. Мы же копируем из волатильной в локальную/регистровую всякий раз перед ее использованием, и оптимизатор не выкинет действия с нею. Примерно так делает и компилятор, загружая переменную в регистры. Или Вы намекаете на что-то другое? - Олдфаг(30.04.2016 22:13, )
- Я не специалист в АРМ асме, но в обоих вариантах у меня получилось одинаковое количество команд - IBAH c чужого компа(30.04.2016 22:22, )
- Иногда волатильность нужна просто чтобы компилятор переменную не выбросил (если используется оптимизация). + Можно к примеру, запретить прерывание, присвоить значение временной переменной, затем снова прерывания разрешить. - De_User(30.04.2016 22:04)
- Не понял. Мы же копируем из волатильной в локальную/регистровую всякий раз перед ее использованием, и оптимизатор не выкинет действия с нею. Примерно так делает и компилятор, загружая переменную в регистры. Или Вы намекаете на что-то другое? - Олдфаг(30.04.2016 22:13, )
- Если в одном выражении присутствуют две (или более) волатильных переменных, то этого варнинга вам не избежать - можно лишь полностью отключить его индикацию, как вам уже ранее советовали. - Ксения(30.04.2016 21:23)
- дык, оно мне и надо - IBAH c чужого компа(30.04.2016 22:23, )
- Насчет опции не знаю, можно расставить #pragma diag_suppress=Pa082 по тексту - AlexG(30.04.2016 21:19)
- вот это похоже то, что мне надо, на всякий случай, спасибо - IBAH c чужого компа(30.04.2016 22:25, )
- Зачем отключать варнинги и потом спать ворочаясь? Если гора не идет к Магомедову, то можно самому проэмулировать ситуацию корректно: организовать локальный блок, в нем объявить локальную переменную-копию одной из волатильных. И теперь можно Олдфаг(143 знак., 30.04.2016 21:48, )