VVB_ (04.05.2010 13:58, просмотров: 1) ответил Vladimir Ljaschko на Я готов согласиться, что если volatile-переменная используется вне прерывания один раз, то все будет работать. Одна проблема - я НЕ ХОЧУ считать количество обращений к этой переменной. Достаточно сложный проект, есть над чем думать и без этого. Правило
В моей жизни пока не было случая, чтобы предполагалось, что переменная, изменяемая в прерывании, может измениться в последовательной цепочки обработки внутри какой-то функции. Как правило (в моих проектах), при входе в функцию надо один раз узнать значение переменной (создать локальную копию), и затем использовать именно это значение, а не какое-то другое. По-моему, будет геморройнее, если использовать volatile и она (переменная) вдруг внезапно изменится на какой-то стадии цепочки команд. Не говоря уже о нескольких асинхронно изменяемых переменных (в разных обработчиках), но для которых требуется совместная окончательная обработка. Это сильно усложняет проектирование программы, и я стараюсь избегать подобных методов построения программы. Лишь в крайнем случае буду использовать volatile