Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Встроенные библиотеки
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
SasaVitebsk
Необходимо было динамически определять колличество датчиков (DS18b20) на шине и работать с ними.
Пересмотрел по ссылкам гугла кучу инфы, но не нашёл того чтобы меня устроило полностью. Впрочем так бывает у меня всегда. Ну кое что взял за основу и за два дня переписал/оптимизировал. И когда уже начал компилировать конечную прогу линкер (!!!) выдаёт следующее сообщение:

Warning[w6]: Type conflict for external/entry "OW_cnt_device", in module main against external/entry in module ds18b20; prototyped function vs K&R function
/* In module main: */
/* K&R Function, args 0, attr 0 */
int (__version_3 OW_cnt_device)();
/* In module ds18b20: */
/* Function, args 0, attr 0 */
uint8_t (__version_3 OW_cnt_device)(void);

Надо отметить что своё название "OW_cnt_device" я взял от балды. Я правильно понял, что в моей системе уже есть внешняя библиотека (K&R) где имеется данная ф-ия? IAR у меня стандартный и во встроенном описании я не обнаружил каких либо аналогичных ф-ий. Только стандартные.

Поясните, пожалуйста, или я заблуждаюсь или где прочитать.
zltigo
Цитата(SasaVitebsk @ Nov 19 2006, 22:04) *
/* In module main: */
/* K&R Function, args 0, attr 0 */
int (__version_3 OW_cnt_device)();
/* In module ds18b20: */
/* Function, args 0, attr 0 */
uint8_t (__version_3 OW_cnt_device)(void);

Вот тут же все и написано - у Вас поминаются вами-же написанные две разные функции
OW_cnt_device();
и
uint8_t сnt_device)(void);

Прототип:
uint8_t сnt_device)(void);
нормально для вызова из Main укажите и бога ради запретите компилятору стиль K&R понимать c его
долбаными прототипами по умолчанию.
SasaVitebsk
Цитата(zltigo @ Nov 19 2006, 20:15) *
Вот тут же все и написано - у Вас поминаются вами-же написанные две разные функции
OW_cnt_device();
и
uint8_t сnt_device)(void);

Прототип:
uint8_t сnt_device)(void);
нормально для вызова из Main укажите и бога ради запретите компилятору стиль K&R понимать c его
долбаными прототипами по умолчанию.


Учу- учу и нифига с этим английским. smile.gif

И названия и прототипы верные. Правда у меня переменная есть с тем же названием, но большие буквы.
Сейчас компилятор перестал ошибку выдавать.

И как запретить компилятору стиль K&R понимать?


Кстати компилятор обалденный. Простые проги пишет один в один как на асме. Просто тащусь. На более сложных пока его логика мне не всегда ясна, но моё доверие он уже завоевал полностью. smile.gif
zltigo
Цитата(SasaVitebsk @ Nov 20 2006, 17:05) *
И названия и прототипы верные.

Давайте примем, как аксиому, что написанное выше НЕПРАВДА. Прототипа вообще нет.
Почему? Потому, что я диагностике компилятора верю гораздо больше, чем Вашим словам.
Из этого и исходите.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.