Перейти к содержанию
    

Keil игнорирует неиспользованый в проекте массив

Умный кеил игнорирует операции которых результат дальше не фигурирует в проекте. Это нормально, но у меня есть процедура которая берет название массива и выводит его на дисплей.

Таких массивчиков у меня около 30, я чтоб не ставить милион свитчей, я беру адрес первого, плюсую к умноженому размеру на номер массива.

Кеил думает что используется первый массив и остальные не компилит. Если я в проекте где нибудь засвечу массивы то работает.

 

Подскажите как обьяснить ему что массивчики есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Таких массивчиков у меня около 30, я чтоб не ставить милион свитчей, я беру адрес первого, плюсую к умноженому размеру на номер массива.

А почему Вы считаете, что можно таким образом вычислять адрес?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Таких массивчиков у меня около 30, я чтоб не ставить милион свитчей, я беру адрес первого, плюсую к умноженому размеру на номер массива.

Какой ужас...

Вообще-то для этого придуманы двухмерные массивы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой ужас...

Вообще-то для этого придуманы двухмерные массивы.

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

 

Короче понял, надо соединить все в один масив. А потом назвать двухмерным. Спасибо за подсказку.

Изменено пользователем yarunt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

Короче понял, надо соединить все в один масив. А потом назвать двухмерным. Спасибо за подсказку.

Объединять не обязательно: сделайте, например, массив указателей на массивы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Объединять не обязательно: сделайте, например, массив указателей на массивы.

Спасибо помогло :beer: , тему можно закрывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...