У меня вопрос о volatile на языке C.
Я прочитал некоторый учебник, но все еще не могу понять, некоторые говорят, что volatile сообщает оптимизатору-компидиенту, что операции с этой переменной не должны оптимизироваться определенными способами. это означает, что в любое время значение переменной изменяется в регистре, тогда значение должно влиять на память.
А также некоторые говорят, что volatile означает, что значение может быть изменено с помощью вне этого кода.
Я не могу понять второе высказывание, так что изменчивая переменная может быть изменена средствами вне этого кода? как? и эти два говорят оба правильно?