0

どのシナリオでこれらのエラーが発生するのか説明していただけますか?

次のコードがあり、lint に次のエラーが表示されます。

#ifdef SIC_CSI_NET
short CsiNetInit(void);
#endif

エラー:

「シンボル 'CsiNetInit(void)' 再宣言 (精度) が 21 行目と競合しています。

21 行目には何もありません。コメントに使用される ** が表示されます。

4

2 に答える 2

2

おそらく、これらの行を処理するコンパイル単位の 1 つで、SIC_CSI_NETこの警告を引き起こすファイルとは対照的に、定義されていませんが、関数が使用されています。その場合、Lint はプロトタイプをまったく認識せず、別の警告 (おそらく 718 "Symbol 'CsiNetInit' undeclared, assume to return int") を表示し、prototype を想定しint CsiNetInit(void);ます。

その後、実際のプロトタイプを見ると、違いが明らかになります: intvs. short.

于 2012-11-29T13:58:48.517 に答える
0

CsiNetInit();の実際の定義を見てください。shortおそらく、そのプロトタイプは?とは異なる戻り値の型を指定しています。

于 2012-05-04T14:14:02.347 に答える