どのシナリオでこれらのエラーが発生するのか説明していただけますか?
次のコードがあり、lint に次のエラーが表示されます。
#ifdef SIC_CSI_NET
short CsiNetInit(void);
#endif
エラー:
「シンボル 'CsiNetInit(void)' 再宣言 (精度) が 21 行目と競合しています。
21 行目には何もありません。コメントに使用される ** が表示されます。
おそらく、これらの行を処理するコンパイル単位の 1 つで、SIC_CSI_NET
この警告を引き起こすファイルとは対照的に、定義されていませんが、関数が使用されています。その場合、Lint はプロトタイプをまったく認識せず、別の警告 (おそらく 718 "Symbol 'CsiNetInit' undeclared, assume to return int") を表示し、prototype を想定しint CsiNetInit(void);
ます。
その後、実際のプロトタイプを見ると、違いが明らかになります: int
vs. short
.
CsiNetInit()
;の実際の定義を見てください。short
おそらく、そのプロトタイプは?とは異なる戻り値の型を指定しています。