-
- См. моё сообщение выше. Nikolay_Po(287 знак., 26.12.2024 14:26, ссылка)
- Никто не запрещает использовать разную волатильность в разных
единицах компиляции. В одном файле int a; в другом extern volatile
int a; или даже extern const volatile int a - IBAH(26.12.2024 14:14)
- Да. const volatile int приходилось объявлять, чтобы компилятор понял, что от него
требуется прочесть значение из указанных ячеек FLASH, а не просто
"захардкодить". Но на счёт разного объявления в разных единицах
компиляции не согласен. Если включить предупреждения, компилятор
будет ругаться на разницу в объявлениях одного и того же объекта. - Nikolay_Po(26.12.2024 14:24)
- Компилятор не знает как переменная объявленная в другом файле,
поэтому и не ругается. На этапе линковки может ругнутся, если
объявления противоречат друг-другу, но этот случай к этому не
относится. Делаю так IBAH(555 знак., 26.12.2024 14:45)
- Я делаю иначе. Если в конкетном участке кода, волатильность
переменной не требуется, то чтобы не мешать оптимизатору, я просто
присваиваю её значение временной переменной, с которой потом и
работаю и которая максимально оптимизируется без жонглирования
иф-дефами. - Nikolay_Po(26.12.2024 15:58)
- Именно так! - vpv.vpv(27.12.2024 06:47)
- Я делаю иначе. Если в конкетном участке кода, волатильность
переменной не требуется, то чтобы не мешать оптимизатору, я просто
присваиваю её значение временной переменной, с которой потом и
работаю и которая максимально оптимизируется без жонглирования
иф-дефами. - Nikolay_Po(26.12.2024 15:58)
- Компилятор не знает как переменная объявленная в другом файле,
поэтому и не ругается. На этапе линковки может ругнутся, если
объявления противоречат друг-другу, но этот случай к этому не
относится. Делаю так IBAH(555 знак., 26.12.2024 14:45)
- Да. const volatile int приходилось объявлять, чтобы компилятор понял, что от него
требуется прочесть значение из указанных ячеек FLASH, а не просто
"захардкодить". Но на счёт разного объявления в разных единицах
компиляции не согласен. Если включить предупреждения, компилятор
будет ругаться на разницу в объявлениях одного и того же объекта. - Nikolay_Po(26.12.2024 14:24)
- Это предновогодний троллинг такой? :))) Даже и не знаю, что
возразить. На то, что под volatile компилятор выделяет много
ресурса. )) - vpv.vpv(26.12.2024 13:50)
- Это правда, что volatile зачастую слишком грубый инструмент.
Пригодились бы и дополнительные варианты с различной
избирательностью. Но мсье хомяк от этого только больше запутается. - SciFi(26.12.2024 14:29)
- Volatile прекрасный инструмент. Просто пользоваться им надо с умом. Где-то сделать локальную копию, если нужны вычисления и модификация, и прерывания можно запретить. Надо просто представлять, как работает процессор. - vpv.vpv(27.12.2024 06:44)
- Да. Я бы сказал, что компилятор выделяет ресурс. А точнее, не удаляет лишнее выделение ресурса для объявленного volatile. - Nikolay_Po(26.12.2024 14:21)
- Это правда, что volatile зачастую слишком грубый инструмент.
Пригодились бы и дополнительные варианты с различной
избирательностью. Но мсье хомяк от этого только больше запутается. - SciFi(26.12.2024 14:29)