【发布时间】:2015-01-28 10:13:11
【问题描述】:
我在使用 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
【问题讨论】:
-
您的
struct OW_info定义到底在哪里?在第 5 行的某个地方? -
更像101,不在main里面。
-
正确。我很担心印刷品
previous definition of 'OW中的'OW部分。你能确保没有错别字吗? -
@SouravGhosh 对不起,我删掉了一些错误。它现在完全在那里。
-
我的疯狂刺探黑暗建议是将
struct OW_info的定义从原型之后移到它之前......也许编译器(可能不正确)看到“指向-尚未定义的结构”与“指向已定义结构的指针”不同?