warning
コンパイラの警告メッセージの動作の選択的な変更を有効にします。
#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...] )
#pragma warning( push[ ,n ] )
#pragma warning( pop )
解説
次の警告指定子のパラメーターを使用できます。
警告指定子 |
説明 |
---|---|
1, 2, 3, 4 |
指定された警告に特定のレベルを適用します。これは既定では指定された警告をオンにします。 |
default |
既定値にリセットする警告の動作。これは既定では指定された警告をオンにします。警告は非公開の既定レベルで生成されます。 詳細については、「既定で無効になっているコンパイラの警告」を参照してください。 |
disable |
指定された警告メッセージが表示されます。 |
error |
指定した警告をエラーとして報告します。 |
once |
指定されたメッセージを 1 回だけ表示されます。 |
suppress |
プラグマの状態をリセットするためのスタックのプラグマの現在の状態を押しながら行の指定された警告を無効にし警告のスタックをポップされます。 |
次のコード ステートメントは warning-number-list のパラメーターが複数の警告番号を含めることができwarning-specifier の複数のパラメーターが同じプラグマ ディレクティブで指定できることを示します。
#pragma warning( disable : 4507 34; once : 4385; error : 164 )
これを次のコードと機能的には同じです。
// Disable warning messages 4507 and 4034.
#pragma warning( disable : 4507 34 )
// Issue warning 4385 only once.
#pragma warning( once : 4385 )
// Report warning 4164 as an error.
#pragma warning( error : 164 )
コンパイラは 0 ~ 999 の範囲にある警告の数に 4000 を追加します。
で円 4700-4999 の警告番号の場合コンパイラが関数の別の関数はの左中かっこで有効であると検出するにはコード生成警告の状態と関連付けられています。大きい値を持つ警告の状態を変更する関数の warning のプラグマを使用して4699 の関数が終了した後だけに適用されます。次の例ではコード生成の警告メッセージを無効にし復元するに warning のプラグマの正しい位置を示します。
// pragma_warning.cpp
// compile with: /W1
#pragma warning(disable:4700)
void Test() {
int x;
int y = x; // no C4700 here
#pragma warning(default:4700) // C4700 enabled after Test ends
}
int main() {
int x;
int y = x; // C4700
}
関数本体ではwarning のプラグマの最後の設定についての関数に対して有効であることを確認します。
押してポップ。
warning のプラグマは次の構文をサポートします。
#pragma warning( push [ ,n ] )
#pragma warning( pop )
n は警告レベル (1 ~ 4) を表します。
プラグマ warning(push) は警告の現在の警告の状態を保存します。プラグマ warning(push,n) は警告の現在の状態を保存しn にグローバルな警告レベルを設定します。
プラグマ warning(pop) がスタックにプッシュされる最後の警告の状態をポップされます。push と pop 間の警告状態に行った変更は元に戻されます。次の例について考えます。
#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
// Some code
#pragma warning( pop )
このコードの最後にpop はコードの先頭に設定すると警告の状態を復元します (47054706および 4707 が含まれます)。
ヘッダー ファイルを作成するとヘッダーが正しくコンパイルされたことをユーザーによる状態の変更ができることを保証するに push と pop を使用できます。ヘッダーの先頭に push と末尾に pop を使用します。たとえば警告レベル 4 でコンパイルされずにヘッダーがある場合は次のコードでは警告 3 レベルを変更しヘッダーの端を元の警告レベルを復元します。
#pragma warning( push, 3 )
// Declarations/definitions
#pragma warning( pop )
警告を抑制するに役立つコンパイラ オプションの詳細については/FI と /w を参照してください。