warning
Umożliwia selektywne modyfikacji zachowanie komunikatów ostrzeżeń kompilatora.
#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...] )
#pragma warning( push[ ,n ] )
#pragma warning( pop )
Uwagi
Dostępne są następujące parametry specyfikatora ostrzeżenie.
Specyfikator ostrzeżenie |
Znaczenie |
---|---|
1, 2, 3, 4 |
Zastosowanie danego poziomu do określonego co najmniej jednym ostrzeżeniem.Włącza to również określony ostrzeżenie, że jest domyślnie wyłączona. |
default |
Zresetować ostrzeżenie zachowanie na wartość domyślną.Włącza to również określony ostrzeżenie, że jest domyślnie wyłączona.Ostrzeżenie zostanie wygenerowany na domyolny, udokumentowane, poziom. Aby uzyskać więcej informacji, zobacz Ostrzeżenia kompilatora, które są domyślnie wyłączone. |
disable |
Nie wydają określonej wiadomości ostrzeżenie. |
error |
Raport określonego ostrzeżenia jako błędy. |
once |
Wyświetlanie wiadomości określony tylko jeden raz. |
suppress |
Umieszcza bieżący stan pragma na stosie, wyłącza określonego ostrzeżenie w następnym wierszu i tak, aby Państwo pragma jest resetowany punkty POP stosu ostrzeżenie. |
Poniższa instrukcja kod pokazuje, że warning-number-list parametr może zawierać wiele numerów ostrzeżenie i wiele warning-specifier parametry mogą być określone w tej samej dyrektywy pragma.
#pragma warning( disable : 4507 34; once : 4385; error : 164 )
To jest funkcjonalnie równoważne następujący kod.
// 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 )
Kompilator doda 4000 dowolną liczbę ostrzeżenie jest pomiędzy 0 i 999.
Ostrzeżenie liczb w zakresie 4700-4999, które są skojarzone z generowania kodu, Państwo ostrzeżenie obowiązujące w przypadku, gdy kompilator napotka otwarty nawias klamrowy funkcji będzie obowiązywać dla pozostałej części funkcji.Za pomocą warning pragmy w funkcji, aby zmienić stan ostrzeżenie, że została podana liczba większa od 4699 zostaną wprowadzone dopiero po zakończeniu funkcji.W poniższym przykładzie pokazano, poprawne położenie warning pragmas, aby wyłączyć komunikat ostrzegawczy generowania kodu, a następnie przywrócić go.
// 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
}
Należy zauważyć, że organ ostatnie ustawienia z całej funkcji warning pragma będzie obowiązywać dla całej funkcji.
Pop i wypychania
warning Pragma obsługuje także następującej składni.
#pragma warning( push [ ,n ] )
#pragma warning( pop )
Gdy n reprezentuje poziom ostrzeżeń (od 1 do 4).
Pragma warning( push ) zapisuje bieżący stan ostrzeżenia dla każdego ostrzeżenia.Pragma warning( push, n) przechowuje bieżącego stanu dla każdego ostrzeżenia i ustawia globalny poziom ostrzeżeń na n.
Pragma warning( pop ) ostatnie Państwo ostrzeżenie wkładany na stos punktów obecności.Wszelkie zmiany dokonane w stanie ostrzeżenia, między push i pop zostaną cofnięte.Rozważmy następujący przykład:
#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
// Some code
#pragma warning( pop )
Na końcu niniejszego Kodeksu pop przywraca stan każdego ostrzeżenia (obejmuje 4705, 4706 i 4707), aby był na początku kodu.
Podczas pisania plików nagłówkowych można użyć push i pop do zagwarantowania, że Państwo ostrzeżenie zmiany wprowadzone przez użytkownika uniemożliwia nagłówki kompilowanie poprawnie.Użyj push na początku nagłówek i pop na końcu.Na przykład jeśli nagłówek, który nie skompilować czysto na poziomie ostrzeżeń 4 następujący kod będzie zmienić poziom ostrzeżeń na 3, a następnie Przywróć oryginalne poziom ostrzeżeń na końcu nagłówka.
#pragma warning( push, 3 )
// Declarations/definitions
#pragma warning( pop )
Aby uzyskać więcej informacji o kompilator, opcje, które pomagają pomija ostrzeżenia, zobacz /FI i /w.