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 に答える