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

 
 
 
Reply to this topicStart new topic
> IAR MSP 510 и extern union
Dog Pawlowa
сообщение Oct 6 2010, 19:00
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Понадобилось подправить старую версию проекта трехлетней давности.
Не компилируется: Error[Pe101]: "bContrast" has already been declared in the current scope (at line 706 of "...k_backup.h") ...k_backup.c 58
bContrast - это элемент SETUP_STRUCT, ошибка выводится на все элементы.

Header:

extern
__no_init union
{ SETUP_STRUCT ;
unsigned char setup_char[SetupSize];
unsigned int setup_int[SetupSize/2];
}
;

В С-шном файле то же самое, но без extern.

То есть, старый компилятор относил extern ко всем элементам объединения, а новый не хочет, и считает декларацией составную часть extern union.

Можно критиковать подходы программирования, так уже не пишу, но зак просит подправить проект, может кто подскажет, как можно сделать это малой кровью.
Спасибо.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 6 2010, 20:09
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Dog Pawlowa @ Oct 6 2010, 22:00) *
как можно сделать это малой кровью.
Попробуйте убрать из заголовочного файла __no_init - он по логике относится к определению, не к объявлению.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

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

 


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


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