1

組み込みシステム XC8 C コンパイラ (PIC マイクロプロセッサ用) を使用しています。以下が許可されています。

bit foo(){
    //...
}

ただし、非標準の C であるため、Splint 静的アナライザーは次のエラーを返します。

解析エラー: 非関数宣言: ビット: "--------------------------------------"整数。

エラーのファイル/行は、それぞれの .h ファイルの関数プロトタイプです。

Splint が残りのファイルを分析できるようにするには、どうすればこれを修正できますか? 次の 2 つの方法があると思います。

  1. CLI 経由で Splint に渡すことができるフラグを見たことを覚えていると思います。これは、指定された非標準型を標準型に置き換えるように指示します (たとえば、bit を unsigned char に置き換える) が、今はまったく見つからないようです!

  2. また、おそらく、ANSI-C 要件を満たしながら、XC8 が戻り値の型をbit?

進捗:

フォーラムで次の情報を見つけましたが、マニュアルで -D フラグの使用方法に関する情報が見つかりません

キーワードを無視するには、 -Dnonstandardkeyword= を追加して、プリプロセッサがそれを削除するようにします

-Dspecialtype=int を使用して、カスタム型を int として解析します。

4

2 に答える 2

0

FAQにありました:

http://www.splint.org/faq.html

それを引用するには:

16.非標準のキーワードとデータ型を使用するコンパイラを使用して、組み込みシステムでコードを開発しています。自分のコードで Splint を実行したいのですが、これらの非標準のキーワードが原因で解析エラーが発生します。私は何をすべきか?

多くの場合、-D を使用してこの問題を解決できます。

キーワードを無視するだけの場合は、-Dnonstandardkeyword= を追加して、プリプロセッサにキーワードを削除させることができます。ここで、nonstandardkeyword はキーワードの名前です。同様に、-Dspecialtype=int を使用して、カスタム型を int として解析することができます。

于 2014-02-24T12:21:28.403 に答える