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