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

 
 
> Глюк ИАРа или мой?, Почему ИАР не дает проинициализировать статический атрибут класса
lamerok
сообщение May 14 2007, 06:44
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 22-06-04
Из: Челябинск
Пользователь №: 88



Посмотрите плз картинку. Почему ИАР ругается на инициализацию статического члена класса, при этом на инициализацию не статического члена говорит, что атрибут должен быть статическим????.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lamerok
сообщение May 21 2007, 14:24
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 22-06-04
Из: Челябинск
Пользователь №: 88



После кучи экспериментов пришел к выводу:
1. Можно получить код с подстановкой непосредственно числа
2. Но трудно так как:
а) Обращение к static const члену должно быть в одном *.cpp файле
б) Зависит от кода.... Т.е., например, я обращаюсь к static const члену в конструкторе, в теле конструктора, перед обращение, куча условий. Если эти условия заремить или часть из них, или изменить порядок, то компилятор подставляет число, иначе Подставляется адрес static const члена.
в) Если обращаться к static const члену в двух и более *.cpp файлах, то в том файле в котором прошла инициализация члена идет подстановка числа в зависимоти от пункта б), в других тупое чтение с адреса члена.
3. Компилятор всегда располагает static const член в одном из сегментов памяти, либо NEAR_I, либо NEAR_C в зависимости от настроек компилятора.
4. Линкер, если не видит, что компилятор где то еще(кроме как в объявлении) использует ссылку на этот член, не резервируте под него память.
5. Если NEAR_C находится в сегменте CODE, то компилятор об этом не знает и читает с ОЗУ (как была сказано Сергеем)
6 Так лучше не делать smile.gif Можно тупо воспользоваться #define, либо как было сказано, использовать __flash (но тогда будет команда чтения из флеша).
Спасибо всем за помощь.
Да все это касательно floating point.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- lamerok   Глюк ИАРа или мой?   May 14 2007, 06:44
- - Сергей Борщ   Цитата(lamerok @ May 14 2007, 09:44) Посм...   May 14 2007, 12:00
- - IgorKossak   Статические члены класса определяются и инициализи...   May 14 2007, 15:26
- - lamerok   Цитата(Сергей Борщ @ May 14 2007, 15:00) ...   May 15 2007, 02:31
|- - dxp   Цитата(lamerok @ May 15 2007, 09:31) Т.е....   May 15 2007, 03:15
|- - lamerok   Цитата(dxp @ May 15 2007, 06:15) А с чего...   May 15 2007, 03:43
|- - Сергей Борщ   Цитата(lamerok @ May 15 2007, 06:43) Но т...   May 15 2007, 10:27
|- - IgorKossak   Цитата(Сергей Борщ @ May 15 2007, 17:27) ...   May 15 2007, 15:51
||- - zltigo   Цитата(IgorKossak @ May 15 2007, 22:51) Э...   May 15 2007, 16:32
|- - lamerok   Цитата(Сергей Борщ @ May 15 2007, 17:27) ...   May 16 2007, 00:11
|- - Сергей Борщ   Цитата(lamerok @ May 16 2007, 07:11) Каже...   May 16 2007, 04:31
- - lamerok   Цитата(Сергей Борщ @ May 16 2007, 11:31) ...   May 16 2007, 05:23
|- - Сергей Борщ   Цитата(lamerok @ May 16 2007, 12:23) Поче...   May 16 2007, 06:59
|- - lamerok   Цитата(Сергей Борщ @ May 16 2007, 13:59) ...   May 16 2007, 08:23
- - lamerok   Вот что получается... в мар файле Мои переменные л...   May 16 2007, 07:05
|- - IgorKossak   Цитата(lamerok @ May 16 2007, 14:05) Вот ...   May 16 2007, 16:54
|- - lamerok   Цитата(IgorKossak @ May 16 2007, 23:54) N...   May 17 2007, 00:57
|- - Сергей Борщ   Цитата(lamerok @ May 17 2007, 07:57) Но к...   May 17 2007, 03:05
||- - lamerok   Цитата(Сергей Борщ @ May 17 2007, 10:05) ...   May 17 2007, 05:19
||- - Сергей Борщ   Цитата(lamerok @ May 17 2007, 12:19) Код-...   May 17 2007, 06:13
||- - lamerok   Цитата(Сергей Борщ @ May 17 2007, 09:13) ...   May 20 2007, 16:03
|- - IgorKossak   Цитата(lamerok @ May 17 2007, 07:57) Хочу...   May 17 2007, 05:13


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

 


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


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