Ошибка 98: конфликт с предыдущим определением x для атрибута type

Я получаю эту ошибку компиляции, используя SDCC и программируя старый 8051. Я пытаюсь заставить работать команду поиска 1wire. Я получил в свои руки библиотеку OneWire, которую я начал модифицировать для своего аппаратного / программного обеспечения, и теперь я застрял за этой ошибкой:

C:\sdcc\code>sdcc test3.c
test3.c:164: error 98: conflict with previous definition of 'OW_search' for  attribute 'type'
from type 'int function ( struct OW_info generic* fixed, unsigned-char fixed) fixed'
to type 'int function ( struct OW_info generic* fixed, unsigned-char fixed) fixed'

Строки, где появляется ошибка, следующие.

183:...
184:int OW_search(struct OW_info *info)
185:{
186:unsigned char *buffer;
187:int id_bit_number;
188 ...

На всякий случай объявление OW_info

struct OW_info
{
unsigned char family;
unsigned char serialNum[6];
unsigned char crc;

};

Я создаю прототип функции выше

int OW_search(struct OW_info *info);

Я не могу найти правильную причину, почему я получаю эту ошибку компиляции. Я надеюсь на некоторые намеки, почему это произошло. Благодарю.

И ссылка для загрузки всего моего кода http://www.upload.ee/files/4489287/test3.txt.html

1 ответ

Решение

Я получил ошибки, потому что я объявил структуры после прототипирования своих функций. Благодаря @TripeHound теперь известно, что структуры должны быть объявлены до создания прототипа функции, и после дальнейших исследований кажется, что другого пути нет.

Другие вопросы по тегам