ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
21 января
1486836 Топик полностью
mse homjak (26.12.2024 19:55, просмотров: 100) ответил IBAH на Ну просто же. В том файле где меняются вне контекста - volatile, в остальных без оного. Например при неприоритетной системе прерываний, в файле прерывания определяем без volatile, в остальных файлах с volatile. А еще лучше использовать гетер, и волатильную переменную не светить по всему проекту. Например так
Ну, скажэм так, зачем нужна переменная в прерывании, для передачи данных из внешнего порта, если её нельзя пользовать в проекте? Т.е. только волатильность. 

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