13

C、C++、および Java のコード ベースで、コードのクリーンアップ、符号付き/符号なし比較の修正、静的解析の実行などを行っています。

私たちが受け取っている警告の1つは

warning: ISO C does not permit named variadic macros

そして、その仲間の警告

warning: ISO C99 requires rest arguments to be used

さて、C コードではC99 標準の可変引数マクロを使って問題を解決しましたが、C++ コードでは何が正解なのでしょうか? 同じ C99 スタイルを使用すると、異なる警告が表示されます

warning: anonymous variadic macros were introduced in C99 

答えがわかりません。

Linux で GCC (G++) 4.4.3 を使用しています。

コードの特定のセクションでそれを修正または無効にすることができるフラグまたはその他の方法があることを願っていますが、ほとんどすべてのファイルで使用されるログのためです...

4

1 に答える 1

15

-Wno-variadic-macrosその特定の警告を無効にするには、gcc オプションを使用します。

編集:(コメントから)

コードのセクションの警告を無効にするが、一般的にはオンのままにするには、#pragma GCC diagnostic ここで説明したを使用します。

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wvariadic-macros"

    // Your code and/or include files
    // (No variadic warnings here)

#pragma GCC diagnostic pop
于 2012-03-19T18:03:26.183 に答える