この情報を保存する C パーサーなど、Microsoft の SAL を利用する方法はありますか? それとも、Microsoft の内部使用のみを目的として Microsoft によって作成されたものですか?
他の言語用の C ライブラリ バインディングの作成など、多くのタスクに非常に役立ちます。
この情報を保存する C パーサーなど、Microsoft の SAL を利用する方法はありますか? それとも、Microsoft の内部使用のみを目的として Microsoft によって作成されたものですか?
他の言語用の C ライブラリ バインディングの作成など、多くのタスクに非常に役立ちます。
「利用する」とはどういう意味かわかりませんが、現在、VS 2011 Beta は/analyzeオプションを介してコード分析を実行するときに SAL 注釈を使用します。注釈は、Microsoft が (少なくとも VS 環境で) 使用を推奨しているsal.hの純粋なマクロです。
前処理ステップの後に情報を保持したいだけの場合は、マクロを自分自身に展開するか、既存のオープンソース プリプロセッサの 1 つを変更してシンボルを除外することができます (VS には SAL からのいくつかの展開オプションもあります)。ただし、アノテーションによって提供される情報を使用するには、これを行うためにカスタム LLVM プリパスまたは GCC プラグインの行に沿った何かが必要になります (コードをコンパイルする場合、それらを同時にバインディング生成に使用することもできます)。
SAL アノテーションは、静的分析で大量のバグを見つけることができます。
http://msdn.microsoft.com/en-us/library/windows/hardware/hh454825(v=vs.85).aspx
最初から設定する必要はありませんでしたが、私の開発環境では、何かを構築するたびに prefast を使用して静的分析を行っています。コンパイル時にバグを見つけることは、実行時に見つけるよりも優れています。
私自身の個人的な経験から見た限りでは、ソース注釈は、パラメーターがどのように渡されるべきか、またはどのように渡されると想定されているかを素早く確認するための便利な方法です。それを利用する限り、プリパスが真の利点を生かす唯一の方法である可能性があることに同意します。出力に特定のニーズや期待がある場合は、独自に作成することをお勧めします。私が助けてくれることを願っています..