реклама на сайте
подробности

 
 
> Мудрёная операция с указателями в IAR C, Компилятор ругается.
Д_М
сообщение Dec 20 2017, 19:02
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 15-04-05
Из: Краснодар
Пользователь №: 4 185



Приветствую!
Имеется структура и переменная - указатель, которая хранит адрес этой структуры.
Обращение к полям структуры через указатель Syst->SIO1.CRC;
Проверено, работает. Ничего удивительного. Решил в указатель загрузить адрес поля этой структуры
crc = &Syst->SIO1.CRC;
Компилятор ругается. Собственно, почему? Технически такое корректно. Меня в своё время очень удивило, что в качестве аргумента можно передавать адреса локальных переменных. Здесь ещё менее хитро, а компилятор ругается.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aiwa
сообщение Dec 21 2017, 17:24
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(jcxz @ Dec 21 2017, 19:04) *
А Вы пытаетесь придумать "Что бы там такое другое могло быть?".

Имхо, в этом и вся суть темы.

Цитата(jcxz @ Dec 21 2017, 19:04) *
А Вы обратите внимание что и при инициализации data и при вызове функции выражение-то одно и то же "*Syst->SIO1.ptr".
Если бы ругалось на него, то в обоих случаях должно. А значит - видимо с ним всё нормально.


Именно об этом я и говорю. Не хватает ругани: должно быть как минимум две.
Хотя можно предположить, что во втором случае в "SIO1" затесалась "О" кириллицей.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 21 2017, 17:46
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(aiwa @ Dec 21 2017, 19:24) *
Хотя можно предположить, что во втором случае в "SIO1" затесалась "О" кириллицей.

Там можно что угодно предположить так как это игра в угадайку.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 21 2017, 17:50
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (jcxz @ Dec 21 2017, 19:46) *
Здесь телепаты нужны. laughing.gif
Не ссорьтесь. Там в вызове функции есть два обращения к volatile-переменным. Телепатирую, что компилятор справедливо выдает предупреждение о неопределенном порядке доступа к этим переменным. Но автор темы почему-то стесняется привести нам текст этого предупреждения.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 21 2017, 17:55
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Сергей Борщ @ Dec 21 2017, 19:50) *
Там в вызове функции есть два обращения к volatile-переменным. Телепатирую, что компилятор справедливо выдает предупреждение о неопределенном порядке доступа к этим переменным.

Да, так скорее всего и есть. Чуть позже это заметил. sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Д_М   Мудрёная операция с указателями в IAR C   Dec 20 2017, 19:02
- - Сергей Борщ   QUOTE (Д_М @ Dec 20 2017, 21:02) Компилят...   Dec 20 2017, 19:10
- - jcxz   Цитата(Д_М @ Dec 20 2017, 21:02) Компилят...   Dec 20 2017, 19:18
- - ViKo   Потому что у полей нет адресов.   Dec 20 2017, 19:29
|- - kolobok0   Цитата(ViKo @ Dec 20 2017, 22:29) Потому ...   Dec 20 2017, 19:45
- - Д_М   Объявления unsigned int *crc; syspar Sys; // Декл...   Dec 20 2017, 19:35
|- - jcxz   Цитата(Д_М @ Dec 20 2017, 21:35) Error[Pe...   Dec 20 2017, 20:06
- - Д_М   extern unsigned int CRC(char data, unsigned int cr...   Dec 21 2017, 10:18
|- - Сергей Борщ   QUOTE (Д_М @ Dec 21 2017, 12:18) // Ругае...   Dec 21 2017, 12:42
- - aiwa   Вы умолчали, что компилятор ругается на Цитатаdat...   Dec 21 2017, 13:09
|- - jcxz   Цитата(aiwa @ Dec 21 2017, 15:09) Если S...   Dec 21 2017, 13:56
- - x893   Видимо лень читать гугло-поиск или на крайний случ...   Dec 21 2017, 13:58
|- - jcxz   Цитата(x893 @ Dec 21 2017, 15:58) Видимо ...   Dec 21 2017, 14:04
- - aiwa   Цитата(jcxz @ Dec 21 2017, 15:56) Нет. Оп...   Dec 21 2017, 15:14
|- - jcxz   Цитата(aiwa @ Dec 21 2017, 17:14) В смысл...   Dec 21 2017, 17:04
- - Д_М   Когда делаю вот так Syst->SIO1.CRC = CRC(*Syst-...   Dec 21 2017, 20:30
|- - Сергей Борщ   QUOTE (Д_М @ Dec 21 2017, 22:30) когда в ...   Dec 21 2017, 20:32
|- - jcxz   Цитата(Сергей Борщ @ Dec 21 2017, 22:32) ...   Dec 22 2017, 10:34
- - Д_М   Большое спасибо за помощь!   Dec 22 2017, 07:56


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 03:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01419 секунд с 7
ELECTRONIX ©2004-2016