Partager via


warning

Active l'édition sélective du comportement des messages d'avertissement du compilateur.

#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...] )
#pragma warning( push[ ,n ] )
#pragma warning( pop )

Notes

les paramètres suivants d'AVERTISSEMENT-spécificateur sont disponibles.

AVERTISSEMENT-spécificateur

Signification

1, 2, 3, 4

Appliquez le niveau donné à des avertissements spécifiés.Cela active également un avertissement spécifié qui est désactivée par défaut.

default

comportement d'avertissement de remise à sa valeur par défaut.Cela active également un avertissement spécifié qui est désactivée par défaut.L'avertissement est généré à sa valeur par défaut, documentée, niveau.

Pour plus d'informations, consultez Avertissements du compilateur qui sont éteints par défaut.

disable

ne publiez pas le message d'avertissement spécifié.

error

Enregistrez les avertissements spécifiés comme des erreurs.

once

Affiche les messages spécifiés une seule fois.

suppress

Pousse l'état actuel du pragma sur la pile, désactive l'avertissement spécifié pour la ligne suivante, puis dépile la pile d'avertissement de sorte que l'état pragma est réinitialisé.

L'instruction de code suivante indique qu'un paramètre d' warning-number-list peut contenir plusieurs numéros d'avertissement, et que plusieurs paramètres d' warning-specifier peuvent être spécifiés dans la même directive pragma.

#pragma warning( disable : 4507 34; once : 4385; error : 164 )

C'est fonctionnellement équivalent au code suivant.

// 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 )

Le compilateur ajoute 4000 à n'importe quel numéro d'avertissement qui est comprise entre 0 et 999.

Pour les numéros d'avertissement dans la plage 4700-4999, qui sont autorisés associés à la génération de code, l'état d'avertissement en effet lorsque le compilateur rencontre l'accolade ouvrante d'une fonction est appliquée pour le reste de la fonction.À l'aide de le pragma d' warning dans la fonction pour modifier l'état d'un avertissement qui a un nombre supérieur à 4699 entreront en vigueur que après la fin de la fonction.L'exemple suivant montre que le positionnement correct des pragmas d' warning pour désactiver un message d'avertissement de génération de code, puis le restaurait.

// 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
}

Notez que dans un corps de la fonction, le dernier paramètre de le pragma d' warning sera appliqué à la fonction entière.

Push et pop sur

Le pragma d' warning prend également en charge la syntaxe suivante.

#pragma warning( push [ ,n ] )

#pragma warning( pop )

Où n représente un niveau d'avertissement (de 1 à 4).

warning( push )pragma enregistre l'état actuel d'avertissement pour chaque avertissement.warning( push,pragman)enregistre l'état actuel pour chaque avertissement et définit le niveau d'avertissement global à n.

warning( pop )pragma dépile le dernier état d'avertissement fait l'objet d'un push dans la pile.Toutes les modifications apportées à l'état d'avertissement entre push et pop sont annulées.Considérez cet exemple :

#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
// Some code
#pragma warning( pop ) 

À la fin de ce code, pop restaure l'état de chaque avertissement (inclut 4705, 4706, et 4707) à ce qu'il était au début du code.

Lorsque vous écrivez des fichiers d'en-tête, vous pouvez utiliser push et pop pour garantir que les modifications d'AVERTISSEMENT-état apportées par un utilisateur n'empêchent pas les en-têtes de compiler correctement.Utilisez push au début de l'en-tête et pop à la fin.Par exemple, si vous avez un en-tête qui ne compile pas correctement au niveau d'avertissement 4, le code suivant à modifier le niveau d'avertissement à 3 puis restaurerait le niveau d'avertissement d'origine à la fin de l'en-tête.

#pragma warning( push, 3 )
// Declarations/definitions
#pragma warning( pop ) 

Pour plus d'informations sur les options du compilateur qui vous aident à supprimer les avertissements, consultez /FI et le /w.

Voir aussi

Référence

Directives pragma et le mot clé de __Pragma