2

CRC8.cにはこの機能があります:

BOOL isCRCValid(const UINT8 *ptr, UINT8 Len, UINT8 CRCChar){
    return CRCChar == generateCRC(ptr, Len); //generareCRC returns a UINT8
}

で宣言されCRC8.hていますが、PCLintは次のように返します。

Info 714: Symbol 'isCRCValid(const unsigned char *, unsigned char, unsigned
    char)' not referenced
Info 830: Location cited in prior message

ヘルプによると、714は次のとおりです。

714:シンボル'シンボル'(場所)が参照されていません-指定された外部変数または外部関数が定義されていますが、参照されていません。このメッセージは、ユニットのチェックアウト(-uオプション)では抑制されます。

830は:

830前のメッセージで引用された場所-メッセージ830は、他のメッセージに埋め込まれた場所情報を「標準形」で伝えるための手段です。たとえば、(やや簡略化された)メッセージについて考えてみます。

     file x.c line 37:  Declaration for 'x' conflicts with line 22

これには、メッセージのテキストに埋め込まれた場所(「22行目」)が含まれます。埋め込まれた位置情報は、通常、編集者やIDE(インタラクティブ開発環境)では理解されません。IDE(インタラクティブ開発環境)は、名目上の位置(この例では37行目)にしか配置できません。22行目の名目上の位置でこの追加メッセージを追加することにより、ユーザーは次のメッセージにステップアップすることで、この場合、「競合」が何であるかを確認できます。このメッセージと以下のメッセージ831は、メッセージ抑制の通常の規則に従っていません。もしそうなら、オプション-w2を使用して警告レベルを2に下げると、これらのメッセージ(レベル3)も消えます。代わりに、それらは期待どおりに機能し続けます。それらを禁止するには、次のいずれかを使用して明示的にオフにする必要があります。

         -e830 
         -e831

+e830および+e831を介して復元できます。抑制状態は、-save-restoreオプションを使用して保存および復元できます。-e8*や-e{831}などのオプションは効果がありません。

私はPCLintの初心者であり、Cの比較的初心者なので、この問題の解決には至っていません。

誰かがこの問題で私を助けることができますか?

4

2 に答える 2

6

このメッセージは、PCLintが実際にこの関数を使用するものを検出しなかったことを意味しているため、デッドコード/削除の候補である可能性があります。

于 2011-09-23T13:25:03.190 に答える
0

また、関数で入力引数を使用しなかったことを意味する場合もあります。

于 2016-02-25T16:20:30.570 に答える