История изменений
Исправление shkolnick-kun, (текущая версия) :
Например, когда работаешь с портами ввода вывода, компилятору не известно о существовании аппаратной части, и он может выкинуть «бессмысленные» операции.
А если указатель на регистр объявлен как volatile uint32_t *, то компилятор не выкинет операции с ним.
Но в основном такие вещи скрыты от глаз пользователя за макрос-магией.
Исходная версия shkolnick-kun, :
Например, когда работаешь с портами ввода вывода, компилятору не известно о существовании аппаратной части, и он может выкинуть «бессмысленные» операции.
А если указатель на регистр объявлен как volatile uint32_t *, то компилятор не выкинет операции с ним.
Но в основном такие вещи скрыты отглаз пользователя за макрос-магией.