-
- Потому что в данном конкретном случае компилятор не смог заоптимизировать ваш расчет так, чтобы закешировать переменную в регистре и исключить обращение к памяти. В следующей версии он может стать умнее и без volatile программа перестанет работать. - Cepгeй Бopщ(30.04.2010 18:51)
- Скорее всего переменные Глобальные !? вот именно по этому ! volatile нужен в том случае когда например В прерывании взводится флажок а в фоне в цикле while() он проверяется. в этом случае компилятор может создать след конструкцию. Сначала один раз =MIV=(111 знак., 30.04.2010 13:53, )
- volatile - "изменчивая" во времени - употребляется для указания типа доступа "всегда обращаться". В явном виде это относится к портам и счётчикам/таймерам. Доступ к переменным без модификатора volatile оптимизатор может организовать по своему Vit(53 знак., 30.04.2010 19:02)
- Разве глобальность переменных однозначно исключает ситуацию с регистром? Конечно, проект большой, больше вероятность, что регистров просто не хватит :) Но я не хотел бы оценивать необходимость volatile по размеру проекта. - Vladimir Ljaschko(30.04.2010 14:17)
- Как раз нет ! Не исключает. - =MIV=(30.04.2010 14:43, )