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

 
 
 
Reply to this topicStart new topic
> Keil игнорирует неиспользованый в проекте массив
yarunt
сообщение Feb 29 2012, 19:20
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



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

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


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 29 2012, 19:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

А почему Вы считаете, что можно таким образом вычислять адрес?
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 29 2012, 20:01
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



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

Какой ужас...
Вообще-то для этого придуманы двухмерные массивы.
Go to the top of the page
 
+Quote Post
yarunt
сообщение Feb 29 2012, 20:43
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



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

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

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

Сообщение отредактировал yarunt - Feb 29 2012, 20:59


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 29 2012, 21:09
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

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

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

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

Объединять не обязательно: сделайте, например, массив указателей на массивы.
Go to the top of the page
 
+Quote Post
yarunt
сообщение Feb 29 2012, 21:34
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



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

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


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post

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

 


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


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