Указатели на структуру

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
maksimdag0
Прорезались зубы
Сообщения: 225
Зарегистрирован: Чт апр 08, 2021 09:46:48

Указатели на структуру

Сообщение maksimdag0 »

Доброго времени суток! Ребят, никак не могу разобраться, знаю что здесь все просто, но до меня не доходит. В файле  stm32f103xb.h имеются обозначение регистров STM32.  К обозначены в #define как указатели на структуру (см. рисунок №1). Вопрос в следующем:

1) Для чего нужны скобки около TIM_TypeDef * (на рисунке №3 эти скобки показаны стрелкой)? Ведь указатели на структуру обьявляются без этих скобок (см. рисунок №2)
Вложения
3.png
(5.87 КБ) 116 скачиваний
2.png
(222.96 КБ) 97 скачиваний
1.png
(106.67 КБ) 101 скачивание
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25261
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Указатели на структуру

Сообщение КРАМ »

[uquote="maksimdag0",url="/forum/viewtopic.php?p=4247423#p4247423"]Для чего нужны скобки[/uquote]
Приведение типа. Это же дефайн, а не объявление.
Реклама
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Указатели на структуру

Сообщение Martian »

странно, что возник вопрос с приведением, а не с со скобками корневого уровня (или как их ещё назвать, общими? глобальными? просто первыми?)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25261
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Указатели на структуру

Сообщение КРАМ »

[uquote="Martian",url="/forum/viewtopic.php?p=4247439#p4247439"]а не с со скобками корневого уровня[/uquote]
Эти скобки нужны, чтобы не нарваться на неприятности при использовании дефайна. Иначе при подстановке приведение типа будет отнесено ко всей конструкции указателя на структуру.
Реклама
Эиком - электронные компоненты и радиодетали
maksimdag0
Прорезались зубы
Сообщения: 225
Зарегистрирован: Чт апр 08, 2021 09:46:48

Re: Указатели на структуру

Сообщение maksimdag0 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4247430#p4247430"][uquote="maksimdag0",url="/forum/viewtopic.php?p=4247423#p4247423"]Для чего нужны скобки[/uquote]
Приведение типа. Это же дефайн, а не объявление.[/uquote]
Теперь я совсем ничего не понимаю. Разве это не указатель на структуры? Почему это приведение типов?
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25261
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Указатели на структуру

Сообщение КРАМ »

[uquote="maksimdag0",url="/forum/viewtopic.php?p=4247512#p4247512"]Разве это не указатель на структуры?[/uquote]
Нет. Указатель - это тип переменной. А в данном случае определяется ("дефайнится") абсолютный адрес - то есть просто число-константа. Размерность константы нужно привести к типу указателя. Это в дефайне и сделано.
Далее подстановка дефайна в качестве имени указателя будет абсолютным адресом, а не переменной.
Реклама
maksimdag0
Прорезались зубы
Сообщения: 225
Зарегистрирован: Чт апр 08, 2021 09:46:48

Re: Указатели на структуру

Сообщение maksimdag0 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4247566#p4247566"][uquote="maksimdag0",url="/forum/viewtopic.php?p=4247512#p4247512"]Разве это не указатель на структуры?[/uquote]
Нет. Указатель - это тип переменной. А в данном случае определяется ("дефайнится") абсолютный адрес - то есть просто число-константа. Размерность константы нужно привести к типу указателя. Это в дефайне и сделано.[/uquote]
Примерно понял. А еще понял что мне нужно еще лучше попрактиковаться в си.
Если это приведение типов, для чего там звездочка. Может тему подскажите где это почитать?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25261
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Указатели на структуру

Сообщение КРАМ »

[uquote="maksimdag0",url="/forum/viewtopic.php?p=4247572#p4247572"]Если это приведение типов, для чего там звездочка?[/uquote]
Звездочка там потому, что это тип указателя, хоть и константа. Разыменование константы имеющей тип указателя позволяет присвоить значение по абсолютному адресу равному этой константе.
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Указатели на структуру

Сообщение jcxz »

[uquote="maksimdag0",url="/forum/viewtopic.php?p=4247572#p4247572"]для чего там звездочка. Может тему подскажите где это почитать?[/uquote]Почитайте учебник по си. Раздел про указатели.
maksimdag0
Прорезались зубы
Сообщения: 225
Зарегистрирован: Чт апр 08, 2021 09:46:48

Re: Указатели на структуру

Сообщение maksimdag0 »

Спасибо
Ответить

Вернуться в «ARM»