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

 
 
> Определение указателя
ISK2010
сообщение Sep 2 2011, 13:05
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 205
Регистрация: 21-09-10
Из: г.Зеленоград
Пользователь №: 59 631



Использую Keil....

Есть переменная a. Теперь каким-то образом хочу указатель на int "b" не просто определить как адрес переменной "а", а используя некое константное выражение:

CODE
u32 a;

u32 *b = (u32*)(((u32)(&a) - 0x40000000)*32 + 0x42000000);


Но компилятор выдает ошибку типа "не константное выражение". Но я то знаю, что константное.

Что делать? Вариант проинициализировать этот указатель b перед использованием отпадает, т.к. он уже используется)

P.S. Это мне нужно для побитовых операций с некоторыми переменными в STM32F1xx.




Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ISK2010   Определение указателя   Sep 2 2011, 13:05
- - GetSmart   ЦитатаЧто делать? Вариант проинициализировать этот...   Sep 2 2011, 13:38
- - xemul   Цитата(ISK2010 @ Sep 2 2011, 17:05) Но ко...   Sep 2 2011, 13:47
- - 777777   Цитата(ISK2010 @ Sep 2 2011, 17:05) Есть ...   Sep 2 2011, 14:19
- - ISK2010   Цитата(GetSmart @ Sep 2 2011, 17:38) Непо...   Sep 2 2011, 17:13
- - sigmaN   Цитатаu32 *b = (u32*)(((u32)(&a) - 0x40000000)...   Sep 2 2011, 20:49
- - alexeyv   ЦитатаА вот стоит добавить что-то сложнее вычитани...   Sep 3 2011, 05:26
- - GetSmart   В рунтайме любые операции работают. На этапе компи...   Sep 3 2011, 05:48
|- - Палыч   Цитата(GetSmart @ Sep 3 2011, 09:48) В ру...   Sep 3 2011, 07:05
- - ISK2010   Цитата(Палыч @ Sep 3 2011, 11:05) Какие о...   Sep 3 2011, 08:15
- - alexeyv   КодТоже - всё нормально. Так почему же не "раб...   Sep 3 2011, 08:28
|- - Палыч   Цитата(ISK2010 @ Sep 3 2011, 12:15) приме...   Sep 3 2011, 13:00
- - ISK2010   Нашел еще одно решение) Тупо заставил запихнуть мо...   Sep 3 2011, 08:44
- - alexeyv   У вас в начале топика в корне не правильная формул...   Sep 3 2011, 09:34
|- - ReAl   Цитата(alexeyv @ Sep 3 2011, 12:34) Дело ...   Sep 3 2011, 10:40
- - skripach   ЦитатаА пример u32 * b = (u32 *)( (u32)(&a) );...   Sep 3 2011, 10:02
- - skripach   ЦитатаА, я то - попробовал в IAR для AVR... И, кст...   Sep 3 2011, 13:07
- - sigmaN   Все тут пишут, что умножение указателей не поддерж...   Sep 3 2011, 19:59
- - toweroff   Цитата(sigmaN @ Sep 3 2011, 23:59) Мне по...   Sep 3 2011, 20:02
- - sigmaN   Ааа, ну да! Вообще-то логично, что считать дол...   Sep 3 2011, 20:13
|- - toweroff   Цитата(sigmaN @ Sep 4 2011, 00:13) И он н...   Sep 3 2011, 20:20
|- - Палыч   Цитата(toweroff @ Sep 4 2011, 00:20) без ...   Sep 3 2011, 20:32
||- - toweroff   Цитата(Палыч @ Sep 4 2011, 00:32) Конечно...   Sep 3 2011, 20:40
|- - XVR   Цитата(toweroff @ Sep 4 2011, 00:20) не т...   Sep 5 2011, 08:51
- - sigmaN   Хехе, а интересный же вопрос, а! Особенно вари...   Sep 3 2011, 23:11
- - skripach   ЦитатаА как правильно? Сейчас подойдет товарищ из ...   Sep 4 2011, 00:28
|- - toweroff   Цитата(skripach @ Sep 4 2011, 04:28) Сейч...   Sep 4 2011, 00:45
- - sigmaN   ЦитатаСейчас подойдет товарищ из Риги и всем всё о...   Sep 4 2011, 00:59
- - ISK2010   А что в выражении u32 * b = (u32 *)( (u32)(&a)...   Sep 4 2011, 06:43
- - sigmaN   Лично я всегда думал, что изобилие в коде приведен...   Sep 4 2011, 08:51
- - ISK2010   Читаете что я пишу? Всякие там вычисления номера с...   Sep 4 2011, 10:51
- - ViKo   Можно использовать макроопределение такого вида (и...   Sep 4 2011, 17:29
- - ISK2010   Да, у меня уже используется что-то подобное :CODEt...   Sep 4 2011, 18:15


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

 


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


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