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

 
 
> Встроенные библиотеки, может я два дня занимался "не тем" :)
SasaVitebsk
сообщение Nov 19 2006, 20:04
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Необходимо было динамически определять колличество датчиков (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 у меня стандартный и во встроенном описании я не обнаружил каких либо аналогичных ф-ий. Только стандартные.

Поясните, пожалуйста, или я заблуждаюсь или где прочитать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
zltigo
сообщение Nov 19 2006, 20:15
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(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 его
долбаными прототипами по умолчанию.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Nov 20 2006, 18:05
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(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
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 20 2006, 18:19
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SasaVitebsk @ Nov 20 2006, 17:05) *
И названия и прототипы верные.

Давайте примем, как аксиому, что написанное выше НЕПРАВДА. Прототипа вообще нет.
Почему? Потому, что я диагностике компилятора верю гораздо больше, чем Вашим словам.
Из этого и исходите.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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