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

 
 
> адрес Массива в массиве, Не могу указать :(
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
Ответов
vet
сообщение Feb 23 2006, 09:15
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Должно работать явное указание адреса переменной, без каких-либо операций над ним; массив, конечно, придётся заменить на структуру.
Пример на CodeVision:
Код
typedef flash struct struct_menu_item {
  void (*fn)();
  flash struct struct_menu_item *link[2];
} TMenuItem;


extern flash TMenuItem mnMain;
extern flash TMenuItem mnLabel;
extern flash TMenuItem mnStat;
...

void fnMain() {
...
}

void fnLabel() {
...
}

flash TMenuItem mnMain         = {fnMain,          {&mnStat,    &mnLabel       }};
flash TMenuItem mnLabel        = {fnLabel,         {&mnStat,    &mnLogo        }};
...


Сообщение отредактировал vet - Feb 23 2006, 09:56


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post



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

 


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


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