2

我在使用 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

4

1 回答 1

1

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

于 2015-01-29T07:02:56.097 回答