warning
pragma
Hiermee kunt u selectief wijzigen van het gedrag van waarschuwingsberichten van de compiler.
Syntaxis
#pragma warning(
warning-specifier
:
warning-number-list
[;
warning-specifier
:
warning-number-list
... ])
#pragma warning( push
[,
n ])
#pragma warning( pop )
Opmerkingen
De volgende parameters voor waarschuwingsaanduiding zijn beschikbaar.
waarschuwingsaanduiding | Betekenis |
---|---|
1 , 2 , 3 , 4 |
Pas het opgegeven niveau toe op de opgegeven waarschuwingen. Hiermee schakelt u ook een opgegeven waarschuwing in die standaard is uitgeschakeld. |
default |
Stel het waarschuwingsgedrag opnieuw in op de standaardwaarde. Hiermee schakelt u ook een opgegeven waarschuwing in die standaard is uitgeschakeld. De waarschuwing wordt gegenereerd op het standaardniveau, gedocumenteerd, niveau. Zie Compiler-waarschuwingen die standaard zijn uitgeschakeldvoor meer informatie. |
disable |
Geef de opgegeven waarschuwingsberichten niet op. |
error |
Rapporteer de opgegeven waarschuwingen als fouten. |
once |
De opgegeven berichten slechts één keer weergeven. |
suppress |
Pusht de huidige status van de pragma op de stack, schakelt de opgegeven waarschuwing voor de volgende regel uit en popt vervolgens de waarschuwingsstack zodat de pragma status opnieuw wordt ingesteld. |
De volgende code-instructie illustreert dat een warning-number-list
parameter meerdere waarschuwingsnummers kan bevatten en dat meerdere warning-specifier
parameters kunnen worden opgegeven in dezelfde pragma instructie.
#pragma warning( disable : 4507 34; once : 4385; error : 164 )
Deze richtlijn is functioneel gelijk aan de volgende code:
// Disable warning messages 4507 and 4034.
#pragma warning( disable : 4507 34 )
// Issue warning C4385 only once.
#pragma warning( once : 4385 )
// Report warning C4164 as an error.
#pragma warning( error : 164 )
De compiler voegt 4000 toe aan een waarschuwingsnummer tussen 0 en 999.
Waarschuwingsnummers in het bereik 4700-4999 zijn gekoppeld aan het genereren van code. Voor deze waarschuwingen blijft de status van de waarschuwing van kracht wanneer de compiler de functiedefinitie bereikt voor de rest van de functie. Het gebruik van de warning
pragma in de functie om de status van een waarschuwingsnummer groter dan 4699 te wijzigen, wordt pas van kracht na het einde van de functie. In het volgende voorbeeld ziet u de juiste plaatsing van een warning
pragma om een waarschuwingsbericht voor het genereren van code uit te schakelen en dit vervolgens te herstellen.
// 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
}
U ziet dat in een hoofdtekst van een functie de laatste instelling van de warning
pragma van kracht is voor de hele functie.
Pushen en pop
De warning
pragma ondersteunt ook de volgende syntaxis, waarbij de optionele n parameter een waarschuwingsniveau vertegenwoordigt (1 tot en met 4).
#pragma warning( push [ , n ] )
#pragma warning( pop )
De pragmawarning( push )
slaat de huidige waarschuwingsstatus voor elke waarschuwing op. De pragmawarning( push, n )
slaat de huidige status voor elke waarschuwing op en stelt het globale waarschuwingsniveau in op n.
De pragmawarning( pop )
wordt de laatste waarschuwingsstatus naar de stapel gepusht. Wijzigingen die u hebt aangebracht in de waarschuwingsstatus tussen push
en pop
, worden ongedaan gemaakt. Bekijk dit voorbeeld:
#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
// Some code
#pragma warning( pop )
Aan het einde van deze code herstelt pop
de status van elke waarschuwing (inclusief 4705, 4706 en 4707) terug naar de status aan het begin van de code.
Wanneer u headerbestanden schrijft, kunt u push
en pop
gebruiken om te garanderen dat wijzigingen in de waarschuwingsstatus die door een gebruiker zijn aangebracht, niet voorkomen dat de headers correct worden samengesteld. Gebruik push
aan het begin van de koptekst en pop
aan het einde. U hebt bijvoorbeeld een koptekst die niet op waarschuwingsniveau 4 wordt gecompileerd. Met de volgende code wordt het waarschuwingsniveau gewijzigd in 3 en wordt het oorspronkelijke waarschuwingsniveau aan het einde van de koptekst hersteld.
#pragma warning( push, 3 )
// Declarations/definitions
#pragma warning( pop )
Zie /FI
en /w
voor meer informatie over compileropties waarmee u waarschuwingen kunt onderdrukken.