Microsoft の SAL (Source Annotation Language) は良いものだという考えにたどり着き、その言語とアノテーション プロパティの意味を調べました。
「 int」パラメータに関連する SAL の「 Deref」プロパティの使用について一般的な質問があります。Visual Studio 10 を実行している ctype.h インクルード ファイルから取得した isalpha() 関数の SAL を使用して、私の質問を説明しましょう。
[戻り値:SA_Post(MustCheck=SA_Yes)] int __cdecl isalpha([SA_Pre(Null=SA_No)] [SA_Pre(Deref=1,Valid=SA_Yes,Access=SA_Read)] int _C);
単一のパラメーター _C が「int」の場合、「[SA_Pre( Deref =1 ,Valid=SA_Yes,Access=SA_Read)]」は何を意味しますか? int を 1 回 (Deref=1) 意味のある方法で逆参照するにはどうすればよいですか?
私が考えることができる唯一の説明は、整数がctypeの内部バイト配列への参照であると注釈が述べているということです。静的アナライザーはこの注釈をどのように利用できるでしょうか?