Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
2 EagleB3 - если компилер туп, то просто храните индекс в массиве вместо ссылки в next.
Отправлено
SM
11 апреля 2007 г. 22:24
Составить ответ
|
Вернуться на конференцию
Ответы
Спасибо! Получилось! В конструкции вида: (+)
—
EagleB3
(12.04.2007 13:16:33
193.47.154.6
, 388 байт)
Отвечу тут.
—
by-pass
(11.04.2007 23:57:25
87.240.15.6
, 737 байт)
Вообще-то инициализация массива с заданной размерностью (в оригинале было char c[15];) это не инициализация указателей. Так что проблемы быть не должно.
—
SM
(12.04.2007 00:00:41
80.92.255.53
,
пустое
)
Ой... А "индекс в массиве" - это что такое? (+)
—
EagleB3
(11.04.2007 23:28:24
87.240.15.6
, 24 байт)
Может, через неполное объявление типа?
—
Vit
(11.04.2007 23:47:59
77.123.147.208
, 203 байт)
Там другая проблема - компилер каличный - внутри инициализации переменной не понимает ссылки на саму переменную. А объявляется все нормально.
—
SM
(11.04.2007 23:52:46
80.92.255.53
,
пустое
)
Компилер, ИМХО, ни при чём
—
Vit
(12.04.2007 00:05:56
77.123.147.208
,
пустое
,
ссылка
)
Вот именно, что это Ваше личное IMHO. Три других компилятора на ура что надо собирают. Да и ANSI ничего против использования в инициализаторе ссылки на инициализируемый массив не имеет.
—
SM
(12.04.2007 00:09:31
80.92.255.53
,
пустое
)
Кейл и ИАР для АРМ тоже моё ИМХО? В варианте по ссылке тоже неполное объявление. Это Ваши компилеры исключение
—
Vit
(12.04.2007 00:13:12
77.123.147.208
,
пустое
,
ссылка
)
Я веду речь немного о другом примере (ссылка). И если это не соберется, то факт несовместимости компилятора со стандартом налицо. Что и показал CVAVR.
—
SM
(12.04.2007 00:19:23
80.92.255.53
,
пустое
,
ссылка
)
Тогда я предложил практически то же. Если не работает, то точно глюкодром компилера.
—
Vit
(12.04.2007 00:34:14
77.123.147.208
,
пустое
)
Может ошибка выдаётся не при обьявлении и инициализации, а при использовании. Ему нужно было привести всё к работе только с флэш или ОЗУ. Но человек спрашивает "что такое индекс в массиве". Может опыта маловато. Если всё это свести к одному ("правильному") типу памяти и убрать ВСЕ действия - даже самый деревянный компилятор должен понять.
—
Юрий_СВ
(12.04.2007 00:29:1
91.124.99.95
,
пустое
)
Само по себе размещение меню в EEPROM выглядит диким. Меню должно быть во флэш. Ещё раз особо подчёркиваю : нельзя беспечно пользовать указатели в системах с раздельным полем памяти. Могут быть невероятные грабли (зависит от компилятора.).
—
Юрий_СВ
(12.04.2007 00:33:18
91.124.99.95
,
пустое
)
В первом его варианте он и не сипользовал ничего запрещенного. Единственный указатель был на самого себя, что уж точно не криминал.
—
SM
(12.04.2007 00:36:12
80.92.255.53
,
пустое
)
Ну факт-то налицо, что не работает именно инициализация. Он заменял это поле на другое, не требующее инициализации ссылкой на самого себя, и все собиралось. И ошибка ясная как божий день - "undefined symbol".
—
SM
(12.04.2007 00:32:45
80.92.255.53
,
пустое
)
это то, что Вы в скобках квадратных пишете :) номер элемента.
—
SM
(11.04.2007 23:40:57
80.92.255.53
,
пустое
)
Т.е. в структуру записывать не &list[N] а само число N (типа unsigned char, а если не хватит 0..255, то int).
—
SM
(11.04.2007 23:44:27
80.92.255.53
,
пустое
)
Спасибо! Попробую...
—
EagleB3
(12.04.2007 00:18:31
87.240.15.6
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 6 на 2:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru