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

 
 
> адрес Массива в массиве, Не могу указать :(
andrvisht
сообщение Feb 23 2006, 07:42
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Всех отмечающих с праздником !
никак не могу заставить компилятор сделать следущее:
пусть имеется массив во Flash
Код
__flash char Alph[24] = {'a','b','c','d','e','f','g','h','k', ...};
и другой массив во Flash
__flash char Param[] = {0x45,0x12,0x34,(char)Alpha,(char)(Alpha>>8), ...};

как видно мне нужно впихнуть в длинный список параметров массива Param адрес массива Alpha.
по логике все вроде как-бы должно работать, а по сути IAR выдает такое сообщение
Error[Pe031]: expression must have integral
причем ругается он на 5 элемент где сделано
Код
(char)(Alpha>>8)

Все попытки манипуляции с этой строкой приводят к разного рода сообщениям и одному, ошибочному, результату.
Ну и собственно вопрос Как ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Feb 24 2006, 07:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(&-rey @ Feb 23 2006, 12:09) *
Меня собственно интересует возможность именно такого подхода, или это невозможно ?

Невозможно. Препроцессор не знает адреса массива (и не может выполнять
операций с тем, чего нет) - он будет известен только при линковке. Линкер знает адрес,
но ничего не знает о том, что Вы хотели-бы перед подстановкой его сдвинуть (эта информация
умерла в препроцессоре).


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 08:51
Рейтинг@Mail.ru


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