warning
Aktiviert die selektive Änderung des Verhaltens der Compilerwarnungs Meldungen.
#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...] )
#pragma warning( push[ ,n ] )
#pragma warning( pop )
Hinweise
Folgende Warnung Spezifizierer Parameter sind verfügbar.
Warnung Bezeichner |
Bedeutung |
---|---|
1, 2, 3, 4 |
Wendet die angegebene Ebene auf den angegebenen Warnungen.Dadurch wechselt auch eine angegebene Warnung, die standardmäßig deaktiviert ist. |
default |
Warnung Verhalten der auf den Standardwert zurücksetzen.Dadurch wechselt auch eine angegebene Warnung, die standardmäßig deaktiviert ist.Die Warnung wird an ihrem standardmäßigen generiert, dokumentiert, Ebene. Weitere Informationen finden Sie unter Compilerwarnungen, die standardmäßig deaktiviert sind. |
disable |
Geben Sie nicht die angegebene Warnung aus. |
error |
Melden den angegebenen Warnungen als Fehler. |
once |
Zeigen Sie die angegebenen Meldungen nur einmal an. |
suppress |
Legt den aktuellen Zustand des Pragmas im Stapel, deaktiviert die angegebene Warnung für die nächste Zeile und fügt dann der Warnung Stapel, sodass der Pragma Zustand zurückgesetzt wird. |
Die folgende Codeanweisung wird gezeigt, dass ein warning-number-list-Parameter mehrere Warnungen Zahlen enthalten kann und dass mehrere warning-specifier-Parameter in den gleichen Pragma direktiven angegeben werden können.
#pragma warning( disable : 4507 34; once : 4385; error : 164 )
Dies entspricht dem folgenden Code funktional äquivalent.
// 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 )
Der Compiler fügt 4000 warnenden hinzu, die eine Zahl zwischen 0 und 999 ist.
Eine Warnung Zahlen im Bereich 4700-4999, die mit der Codegenerierung, der Status der Warnung aktiviert, wenn der Compiler die geöffnete geschweifte Klammer einer Funktion ist für den Rest der Funktion auftritt.Verwenden des warning Pragmas in der Funktion zum Überprüfen des Zustands einer Warnung zu ändern, die eine Zahl größer als 4699 ist, treten nur nach dem Ende der Funktion in Kraft.Im folgenden Beispiel wird die richtige Platzierung von warning Pragmas, um eine warnmeldung Codegenerierung zu deaktivieren und anschließend auf Wiederherstellen.
// 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
}
Beachten Sie, dass in einem Funktionsrumpf, die letzte Einstellung des warning Pragmas ist für die gesamte Funktion.
Drücken Sie, und öffnen Sie
Das warning Pragma unterstützt auch die folgende Syntax.
#pragma warning( push [ ,n ] )
#pragma warning( pop )
Wo n eine Warnstufe darstellt (1 bis 4).
Das Pragma warning( push )Speichert den aktuellen Zustand der Warnungen für jede Warnung.Das Pragma warning( push,n)speichert den aktuellen Zustand für jede Warnung und legt die globale Warnstufe fest nsoll.
Die Pragma-Direktive warning( pop )Knalle, zu der der letzte Zustand Warnungen auf dem Stapel gedrückt hat.Alle Änderungen, die Sie dem warnenden Zustand zwischen push und pop vorgenommen haben, werden rückgängig gemacht.Betrachten Sie das folgende Beispiel:
#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
// Some code
#pragma warning( pop )
Am Ende dieses Codes, stellt pop den Zustand jeder Warnung wieder her (schließt 4705, 4706 und 4707) ein, die am Anfang des Codes war.
Wenn Sie Headerdateien schreiben, können Sie push und pop verwenden, um sicherzustellen, dass Warnung Zustand Änderungen, die von einem Benutzer geändert wird, die verhindern, dass der Header nicht ordnungsgemäß kompiliert werden.Verwenden Sie push am Anfang und am Ende pop des Headers.Wenn Sie beispielsweise einen Header verfügen, der nicht auf sauber Warnstufe 4 kompiliert, ist der folgende Code die Warnstufe 3 ändern und anschließend die ursprüngliche Warnstufe am Ende des Headers wiederherstellen.
#pragma warning( push, 3 )
// Declarations/definitions
#pragma warning( pop )
Weitere Informationen zu Compileroptionen, die Ihnen helfen, Warnungen unterdrücken, finden Sie unter /FI und /w.