Разумная ли разница между const и volatile в C?

Я уже прошел ответ на вопрос @Каковы различия между const и volatile указателем в C? Я понимаю объяснение, что:

Модификатор const означает, что этот код не может изменить значение переменной, но это не означает, что значение не может быть изменено средствами вне этого кода. Тем не менее, летучий говорит "эти данные могут быть изменены кем-то еще " и поэтому компилятор не будет делать никаких предположений об этих данных.

Что подразумевает, что оба типа переменных могут быть изменены внешним событием.

Но тогда где же разница в использовании const & летучий?

В C работает ли оптимизация компилятора для const?

Ответы на вопрос(6)

Ваш ответ на вопрос