Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Keil игнорирует неиспользованый в проекте массив
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
yarunt
Умный кеил игнорирует операции которых результат дальше не фигурирует в проекте. Это нормально, но у меня есть процедура которая берет название массива и выводит его на дисплей.
Таких массивчиков у меня около 30, я чтоб не ставить милион свитчей, я беру адрес первого, плюсую к умноженому размеру на номер массива.
Кеил думает что используется первый массив и остальные не компилит. Если я в проекте где нибудь засвечу массивы то работает.

Подскажите как обьяснить ему что массивчики есть?
aaarrr
Цитата(yarunt @ Feb 29 2012, 23:20) *
Таких массивчиков у меня около 30, я чтоб не ставить милион свитчей, я беру адрес первого, плюсую к умноженому размеру на номер массива.

А почему Вы считаете, что можно таким образом вычислять адрес?
scifi
Цитата(yarunt @ Feb 29 2012, 22:20) *
Таких массивчиков у меня около 30, я чтоб не ставить милион свитчей, я беру адрес первого, плюсую к умноженому размеру на номер массива.

Какой ужас...
Вообще-то для этого придуманы двухмерные массивы.
yarunt
Цитата(scifi @ Mar 1 2012, 00:01) *
Какой ужас...
Вообще-то для этого придуманы двухмерные массивы.

На асме хорошо работает, работает и на Си. Ответьте по кейлу, есть ли решение?

Короче понял, надо соединить все в один масив. А потом назвать двухмерным. Спасибо за подсказку.
aaarrr
Цитата(yarunt @ Mar 1 2012, 00:43) *
На асме хорошо работает, работает и на Си. Ответьте по кейлу, есть ли решение?

Это не Си, это издевательство над ним: нельзя просто так "по формуле" брать адрес массива - они могут быть раскиданы как угодно.

У линкера есть опция --no_remove, как бы "решение".

Цитата(yarunt @ Mar 1 2012, 00:43) *
Короче понял, надо соединить все в один масив. А потом назвать двухмерным. Спасибо за подсказку.

Объединять не обязательно: сделайте, например, массив указателей на массивы.
yarunt
Цитата(aaarrr @ Mar 1 2012, 01:09) *
Объединять не обязательно: сделайте, например, массив указателей на массивы.

Спасибо помогло beer.gif , тему можно закрывать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.