Многие аппаратные системы имеют регистры с отображением памяти, места, где они хранят или читают данные.В небольших встроенных системах прямого подключения к оборудованию эти регистры часто размещаются в фиксированных местах, то есть в адресах.
Что делает макрос, так это в основном обеспечивает более удобный доступ к такому расположению, вместо того, чтобызаписывать все приведения и разыменования каждый раз.
В частности, в расположении ADDRESS
(0x2000
), кажется, хранится указатель на структуру типа VEC
.
С (unsigned int*)ADDRESS
макрос делает вид, что значение ADDRESS
действительно является указателем на unsigned int
.Затем макрос разыменовывает этот указатель, чтобы получить значение, хранящееся в памяти в ADDRESS
.Наконец, это значение затем преобразуется в указатель на VEC
.