4

Gcc は、printf 関連のバグを見つけるのに役立つ-Wformatをうまく提供しています。MSVC で同じ動作を得る方法はありますか? 具体的には、コンパイラに引数に対してある程度の型チェックを実行してもらいたいと考えています。さまざまな理由から、明示的に C++ の iostream ライブラリを使用したくありません。(そして、ブースト形式も使いたくありません)。

上記のソースを引用すると、 -WFormat は基本的に次の機能を提供します

printf や scanf などの呼び出しをチェックして、指定された引数の型が指定された書式文字列に適していること、および書式文字列で指定された変換が適切であることを確認します。

これまでのところ、Microsoft で最も近いのは、64 ビット ビルドと 32 ビット ビルドの使用に関連するこの警告です。%d

4

3 に答える 3

3

これは Visual Studio でサポートされている機能ではないと思います (これについての引用を探してみます)。私が知っている最も近いのは、_Printf_format_string_ SAL 注釈を使用することです。

于 2012-04-23T14:31:46.463 に答える
-3

具体的には、コンパイラに引数に対してある程度の型チェックを実行してもらいたいと考えています。

コンパイラは、デフォルトで C++ コードの型チェックを行います。残念ながら、その機能を提供しない C 機能を使用しようとしています。

IO ストリームを使用するだけで、コンパイラは型が一致しない場合に警告を発行するだけでなく、エラーを発行してコードを完全にコンパイルできなくなります!

于 2012-04-23T14:19:25.580 に答える