Цитата(msalov @ Jan 16 2014, 12:44)

Вы немного перепутали:
...
Да, согласен.
По Вашей ссылке посмотрю описание.
Я читал вот эту статью - volatile_for_chainiks.pdf.
И, если я правильно понял, автор советует всегда
использовать в качестве аргумента функции указатель на volatile переменную.
При этом сама переменная представляет собой регистр аппаратуры, который
объявлен как volatile.
Функция должна сделать некоторые действия над содержимым аппаратного
регистра (почитать, модифицировать, записать), может вернуть его значение.
Для того, что бы все действия функции над содержимым аппаратного регистра
не оптимизировались компилятором мы и должны использовать в качестве аргумента
указатель на volatile переменную.
При вызове функции просто передается адрес и никаких действий над ним
в других модулях программы не предполагается.
Например делаем конфигурацию различных каналов UART.