先前为属性 'type' 定义 x 时出错 98:Conflict

Error 98:Conflict with previous definition of x for attribute 'type'

我在使用 SDCC 和对旧 8051 进行编程时遇到此编译错误。 我正在尝试使 1wire 搜索命令工作。我得到了一个 OneWire 库,我开始为我的 hardware/software 修改它,现在我陷入了这个错误:

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);

我找不到出现编译错误的正确原因。我希望得到一些提示,为什么它会出现在那里。谢谢。

还有一个 link 下载我的整个代码 http://www.upload.ee/files/4489287/test3.txt.html

我收到错误是因为我在对函数进行原型设计后声明了结构。 感谢@TripeHound,现在知道必须在制作函数原型之前声明结构,经过进一步研究,似乎没有其他方法。