Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les articles de cette section décrivent les messages d’avertissement du compilateur Microsoft C/C++ C4000 à C4199.
Importante
Les compilateurs et outils de génération Visual Studio peuvent signaler de nombreux types d’erreurs et d’avertissements. Une fois qu’une erreur ou un avertissement a été détecté, les outils de génération peuvent faire des hypothèses sur l’intention du code, et tenter de poursuivre leur tâche, pour signaler un plus grand nombre de problèmes en même temps. Si les outils suivent une hypothèse incorrecte, les erreurs ou avertissements ultérieurs peuvent ne pas s'appliquer à votre projet. Lors de la résolution de problèmes dans votre projet, démarrez toujours par la première erreur ou le premier avertissement signalé et effectuez régulièrement une régénération. Un correctif peut résoudre plusieurs erreurs suivantes.
Pour obtenir de l’aide sur un message de diagnostic particulier dans Visual Studio, sélectionnez-le dans la fenêtre Sortie, puis appuyez sur la touche F1. Visual Studio ouvre la page de documentation relative à cette erreur, le cas échéant. Vous pouvez également utiliser l’outil de recherche en haut de la page pour rechercher des articles sur des erreurs ou des avertissements spécifiques. Vous pouvez également parcourir la liste des erreurs et des avertissements par outil et par type dans la table des matières de cette page.
Remarque
Les erreurs et les avertissements Visual Studio ne sont pas documentés en totalité. Dans de nombreux cas, le message de diagnostic fournit toutes les informations disponibles. Si vous avez atterri sur cette page et que vous pensez que l’erreur ou le message d’avertissement a besoin d’une explication supplémentaire, faites-nous savoir à l’aide des boutons de commentaires de cette page. Si vous pensez que l’erreur ou l’avertissement est incorrect, ou si vous avez trouvé un autre problème relatif à l’ensemble d’outils, signalez un problème de produit sur le site Developer Community. Vous pouvez également envoyer des commentaires et entrer des bogues dans l’IDE. Dans Visual Studio, accédez à la barre de menus et choisissez Aide > Envoyer des commentaires > Signaler un problème, ou soumettez une suggestion en utilisant Aide > Envoyer des commentaires > Suggérer une fonctionnalité. Certaines rubriques d’erreur du compilateur qui ne sont pas émises par le compilateur ont été créées et redirigent maintenant vers cette page à la place.
Vous trouverez peut-être une assistance supplémentaire pour les erreurs et les avertissements dans les forums Microsoft Q&A C++ . Vous pouvez également rechercher le numéro d’erreur ou d’avertissement sur le site Developer Community de Visual Studio C++. Vous pouvez également effectuer des recherches sur Stack Overflow pour trouver des solutions.
Pour obtenir des liens vers d’autres ressources d’aide et de communauté, consultez Aide et communauté Visual C++.
Messages d’avertissement
| Avertissement | Message |
|---|---|
| Avertissement du compilateur (niveau 4, non émis) C4001 | extension non standard « commentaire sur une seule ligne » utilisée |
| Avertissement du compilateur (niveau 1, erreur) C4002 | trop d’arguments pour l’appel de macro de type fonction « identificateur » |
| Avertissement du compilateur (niveau 1, erreur) C4003 | pas assez d’arguments pour l’appel de macro de type fonction « identificateur » |
| Avertissement du compilateur (niveau 1) C4005 | « identificateur » : redéfinition de macro |
| Avertissement du compilateur (niveau 1) C4006 | #undef attendait un identificateur |
| Avertissement du compilateur (niveau 3) C4007 | « fonction » : doit être un « attribut » |
| Avertissement du compilateur (niveau 3) C4008 | « fonction » : l’attribut « attribute » ignoré |
| Avertissement du compilateur (niveau 1) C4010 | un commentaire sur une seule ligne comporte un caractère de continuation de ligne |
| Avertissement du compilateur (niveau 3) C4013 | « fonction » non défini ; en supposant qu'extern retourne un int |
| Avertissement du compilateur (niveau 1) C4015 | « identificateur » : un champ de bits doit avoir intégral comme type |
| Avertissement du compilateur (niveau 3) C4018 | 'expression' : incompatibilité signée/non signée |
| Avertissement du compilateur (niveau 4) C4019 | instruction vide au niveau de la portée globale |
| Avertissement du compilateur (niveau 1) C4020 | « fonction » : trop de paramètres réels |
| Avertissement du compilateur (niveau 1) C4022 | 'function' : incompatibilité de pointeur pour le paramètre réel parameter_number |
| Avertissement du compilateur (niveau 1) C4023 | 'function' : pointeur basé passé à une fonction sans prototype : paramètre parameter_number |
| Avertissement du compilateur (niveau 1) C4024 | 'function' : différents types pour le paramètre formel et réel parameter_number |
| Avertissement du compilateur (niveau 1) C4025 | 'function' : pointeur basé passé à la fonction avec des arguments de variable : paramètre parameter_number |
| Avertissement du compilateur (niveau 1) C4026 | fonction déclarée avec une liste de paramètres formels |
| Avertissement du compilateur (niveau 1) C4027 | fonction déclarée sans liste de paramètres formels |
| Avertissement du compilateur (niveau 1) C4028 | le paramètre formel parameter_number est différent de la déclaration |
| Avertissement du compilateur (niveau 1) C4029 | la déclaration de la liste de paramètres formels est différente de la définition |
| Avertissement du compilateur (niveau 1) C4030 | première liste de paramètres formels plus longue que la seconde |
| Avertissement du compilateur (niveau 1) C4031 | la seconde liste de paramètres formels plus longue que la première liste |
| Avertissement du compilateur (niveau 4) C4032 | le paramètre formel parameter_number a un type différent lorsqu’il est promu |
| Avertissement du compilateur (niveau 1) C4033 | « fonction » doit retourner une valeur |
| Avertissement du compilateur (niveau 1) C4034 | sizeof retourne 0 |
| Avertissement du compilateur (niveau 3) C4035 | « fonction » : aucune valeur de retour |
| Avertissement du compilateur (niveau 1) C4036 | 'type' sans nom comme paramètre réel |
| Avertissement du compilateur (niveau 1) C4038 | « modifier » : modificateur de classe illégal |
| Avertissement du compilateur (niveau 1) C4041 | limite du compilateur : terminaison de la sortie du navigateur |
| Avertissement du compilateur (niveau 1) C4042 | « identificateur » : a une classe de stockage incorrecte |
| Avertissement du compilateur (niveau 1) C4045 | « array » : dépassement des limites du tableau |
| Avertissement du compilateur (niveau 1) C4047 | « opérateur » : les niveaux d'indirection de « identificateur1 » et de « identificateur2 » sont différents |
| Avertissement du compilateur (niveau 1) C4048 | différents indices de tableau : 'identificateur1' et 'identificateur2' |
| Avertissement du compilateur (niveau 1) C4049 | limite du compilateur : interruption de l'émission des numéros de ligne |
| Avertissement du compilateur (niveau 1) C4051 | conversion de type ; perte possible de données |
| Avertissement du compilateur (niveaux 1 et 4) C4052 | déclarations de fonction différentes, une seule contient des arguments de variables |
| Avertissement du compilateur (niveau 4) C4053 | un opérande void pour '?:' |
| Avertissement du compilateur (niveau 1) C4055 | « conversion » : du pointeur donnée « type1 » en pointeur fonction « type2 » |
| Avertissement du compilateur (niveau 2) C4056 | erreur de dépassement dans l'arithmétique des constantes en virgule flottante |
| Avertissement du compilateur (niveau 4) C4057 | « opérateur » : « identificateur1 » diffère de « identificateur2 » dans l’indirection vers des types de base légèrement différents |
| Avertissement du compilateur (niveau 3, éteint) C4060 | l'instruction switch ne contient aucun libellé « case » ou « default ». |
| Avertissement du compilateur (niveau 4, éteint) C4061 | l'énumérateur 'identificateur' dans le switch de enum 'énumération' n'est pas traité explicitement par un libellé case |
| Avertissement du compilateur (niveau 4, éteint) C4062 | l’énumérateur 'identificateur' dans un switch de l’enum 'énumération' n'est pas géré |
| Avertissement du compilateur (niveau 4) C4063 | l'identificateur' de cas n’est pas une valeur valide pour le switch de l’enum 'énumération' |
| Avertissement du compilateur (niveau 4) C4064 | switch de l’enum 'énumération' incomplète |
| Avertissement du compilateur (niveau 3, éteint) C4065 | l’instruction switch contient « default » mais pas d’étiquettes « case » |
| Avertissement du compilateur (niveau 3) C4066 | les caractères après le premier caractère d'une constante caractères larges sont ignorés |
| Avertissement du compilateur (niveau 1) C4067 | jetons inattendus après la directive du préprocesseur - saut de ligne attendu |
| Avertissement du compilateur (niveau 1) C4068 | pragma « identificateur » inconnu |
| Avertissement du compilateur C4069 | un long double a la même précision que double |
| Avertissement du compilateur (niveau 3) C4073 | initialiseurs placés dans la zone d'initialisation d'une bibliothèque |
| Avertissement du compilateur (niveau 1) C4074 | initialiseurs placés dans une zone d'initialisation réservée par le compilateur |
| Avertissement du compilateur (niveau 1) C4075 | initialiseurs placés dans une zone d'initialisation non reconnue |
| Avertissement du compilateur (niveau 1) C4076 | 'type_modifier' : ne peut pas être utilisé avec le type 'typename' |
| Avertissement du compilateur (niveau 1) C4077 | option check_stack inconnue |
| Avertissement du compilateur (niveau 1) C4079 | jeton 'token' inattendu |
| Avertissement du compilateur (niveau 1) C4080 | identificateur attendu pour le nom du segment ; « symbole » trouvé |
| Avertissement du compilateur (niveau 1) C4081 | « jeton1 » attendu ; « jeton2 » trouvé |
| Avertissement du compilateur (niveau 1) C4083 | « jeton » attendu ; identificateur 'identifier' trouvé |
| Avertissement du compilateur (niveau 1) C4085 | le paramètre pragma attendu doit être « on » ou « off » |
| Avertissement du compilateur (niveau 1) C4086 | le paramètre pragma attendu doit être '1', '2', '4', '8', ou '16' |
| Avertissement du compilateur (niveau 1) C4087 | 'fonction' : déclaré avec une liste de paramètres « void » |
| Avertissement du compilateur (niveau 1) C4088 | 'function' : incompatibilité de pointeur dans le paramètre réel parameter_number, paramètre formel parameter_number |
| Avertissement du compilateur (niveau 1) C4089 | 'function' : types différents pour le paramètre réel parameter_number et le paramètre formel parameter_number |
| Avertissement du compilateur (niveau 1) C4090 | 'opération' : différents qualificateurs 'modificateur' |
| Avertissement du compilateur (niveaux 1 et 2) C4091 | «mot clé » : ignoré à gauche du « type » lorsqu’aucune variable n’est déclarée |
| Avertissement du compilateur (niveau 4) C4092 | sizeof retourne un type de donnée 'long non signé' |
| Avertissement du compilateur (niveau 2) C4094 | le 'jeton' sans balise n’a pas déclaré de symboles |
| Avertissement du compilateur (niveau 1) C4096 | « identificateur » : l'interface n'est pas une interface COM ; ne sera pas émise vers IDL |
| Avertissement du compilateur (niveau 1) C4097 | le paramètre pragma attendu doit être « restore » ou « off » |
| Avertissement du compilateur (niveau 1) C4098 | « fonction » : la fonction « void » retournant une valeur |
| Avertissement du compilateur (niveau 2) C4099 | « identificateur » : nom de type d’abord vu à l’aide de « object_type1 », maintenant vu avec « object_type2 » |
| Avertissement du compilateur (niveau 4) C4100 | 'identifier' : paramètre non référencé |
| Avertissement du compilateur (niveaux 3 et 4) C4101 | « identificateur » : variable locale non référencée |
| Avertissement du compilateur (niveau 3) C4102 | « étiquette » : étiquette non référencée |
| Avertissement du compilateur (niveau 1) C4103 | alignement modifié après l'ajout de l'en-tête, peut être dû à l'absence de #pragma pack(pop) |
| Avertissement du compilateur (niveau 1) C4109 | l’identificateur « identifier » inattendu |
| Avertissement du compilateur (niveaux 1 et 4) C4112 | #line nécessite un entier compris entre 1 et line_count |
| Avertissement du compilateur (niveau 1) C4113 | « identificateur1 » diffère dans les listes de paramètres de « identificateur2 » |
| Avertissement du compilateur (niveau 1) C4114 | même qualificateur de type utilisé plusieurs fois |
| Avertissement du compilateur (niveaux 1 et 4) C4115 | « type » : définition d’un type nommé dans les parenthèses |
| Avertissement du compilateur (niveau 1) C4116 | définition de type sans nom entre parenthèses |
| Avertissement du compilateur (niveau 1) C4117 | Le nom de macro « name » est réservé, « commande » a été ignorée. |
| Avertissement du compilateur (niveau 1) C4119 | bases différentes « base1 » et « base2 » spécifiées |
| Avertissement du compilateur (niveau 1) C4120 | incompatibilité fondée/non fondée |
| Avertissement du compilateur (niveau 4) C4121 | 'symbole' : l'alignement d'un membre était sensible à la compression |
| Avertissement du compilateur (niveau 1) C4122 | « fonction » : alloc_text ne peut s’appliquer qu’aux fonctions avec liaison C |
| Avertissement du compilateur (niveau 1) C4123 | différentes expressions de base spécifiées |
| Avertissement du compilateur (niveau 1) C4124 | __fastcall avec contrôle de pile est inefficace |
| Avertissement du compilateur (niveau 4) C4125 | un nombre décimal termine une séquence d’échappement octale |
| Avertissement du compilateur (niveau 4) C4127 | l'expression conditionnelle est constante |
| Avertissement du compilateur (niveau 1) C4129 | 'caractère' : caractère de séquence d'échappement non reconnu |
| Avertissement du compilateur (niveau 4) C4130 | « opérateur » : opération logique sur l’adresse d’une constante de chaîne |
| Avertissement du compilateur (niveau 4) C4131 | « fonction » : utilise un déclarateur obsolète |
| Avertissement du compilateur (niveau 4) C4132 | « objet » : const l'objet doit être initialisé |
| Avertissement du compilateur (niveaux 1 et 3) C4133 | « expression » : types incompatibles – depuis le « type1 » au « type2 » |
| Avertissement du compilateur C4137 | « fonction » : aucune valeur de retour d'une fonction à virgule flottante |
| Avertissement du compilateur (niveau 1) C4138 | « */ » trouvé à l'extérieur du commentaire |
| Avertissement du compilateur (niveau 1, erreur) C4141 | « modificateur » : utilisé plusieurs fois |
| Avertissement du compilateur (niveau 1) C4142 | « identificateur » : redéfinition bénigne du type |
| Avertissement du compilateur (niveau 1) C4143 | 'pragma "same_seg" non pris en charge ; utilisez l'allocation __based » |
| Avertissement du compilateur (niveau 1) C4144 | « expression » : expression relationnelle comme expression de switch |
| Avertissement du compilateur (niveau 1) C4145 | « expression1 » : expression relationnelle comme expression de switch ; risque de confusion avec « expression2 » |
| Avertissement du compilateur (niveau 2) C4146 | opérateur moins unaire appliqué à un type non signé, le résultat reste non signé |
| Avertissement du compilateur (niveau 2) C4150 | suppression de pointeur vers type incomplet 'type' ; aucun destructeur appelé |
| Avertissement du compilateur (niveau 4) C4152 | extension non standard, conversion pointeur fonction/donnée dans l’expression |
| Avertissement du compilateur (niveau 1) C4153 | conversion pointeur fonction/donnée dans l'expression |
| Avertissement du compilateur (niveau 1) C4154 | suppression d'une expression de tableau ; conversion en pointeur fournie |
| Avertissement du compilateur (niveau 1) C4155 | suppression d'une expression de tableau sans utiliser la forme 'delete' de tableau |
| Avertissement du compilateur (niveau 2) C4156 | suppression d'une expression de tableau sans utiliser la forme de tableau de « delete » ; forme de tableau substituée |
| Avertissement du compilateur (niveau 1) C4157 | pragma ignoré par le compilateur C |
| Avertissement du compilateur (niveau 1) C4158 | en supposant #pragma pointers_to_members(full_generality, inheritance_type) |
| Avertissement du compilateur (niveau 3) C4159 | #pragma pragma(pop,...) : a dépilé l’identificateur 'identificateur' précédemment envoyé (push) |
| Avertissement du compilateur (niveau 1) C4160 | #pragma pragma(pop,...) : n’a pas trouvé l’identificateur « identificateur » envoyé précédemment |
| Avertissement du compilateur (niveau 3) C4161 | #pragma pragma(pop...) : plus de pop que de push |
| Avertissement du compilateur (niveau 1) C4162 | « identificateur » : aucune fonction avec liaison C trouvée |
| Avertissement du compilateur (niveau 1) C4163 | « identificateur » : non disponible comme fonction intrinsèque |
| Avertissement du compilateur (niveau 1) C4164 | « fonction » : fonction intrinsèque non déclarée |
| Avertissement du compilateur (niveau 3, éteint) C4165 | « HRESULT » est converti en « bool » ; êtes-vous sûr que c’est ce que vous voulez ? |
| Avertissement du compilateur (niveau 1) C4166 | convention d'appel non conforme pour un constructeur/destructeur |
| Avertissement du compilateur (niveau 1) C4167 | « fonction » : uniquement disponible comme fonction intrinsèque |
| Avertissement du compilateur (niveau 1) C4168 | limite du compilateur : types de débogueur insuffisants, supprimez la base de données 'database' du programme et régénérez-la |
| Avertissement du compilateur (niveau 1) C4172 | adresse de retour de variable locale ou temporaire : optional_context |
| Avertissement du compilateur (niveau 1) C4174 | « nom » : non disponible en tant que #pragma component |
| Avertissement du compilateur (niveau 1) C4175 | #pragma component(browser, on) : les informations du navigateur doivent initialement être spécifiées sur la ligne de commande |
| Avertissement du compilateur (niveau 1) C4176 | « sous-composant » : sous-composant inconnu pour le navigateur #pragma component |
| Avertissement du compilateur (niveau 1) C4177 | #pragma « pragma » doit être uniquement utilisé au niveau global ou au niveau de l'espace de noms |
| Avertissement du compilateur (niveau 1) C4178 | La constante « caseconstante » est trop grande pour le type de l’expression de switch |
| Avertissement du compilateur (niveau 4, non émis) C4179 | « //* » : analysé comme « / » and « /\* » : confusion avec les commentaires standard « // » |
| Avertissement du compilateur (niveau 1) C4180 | qualificateur appliqué au type fonction n'a pas de sens ; ignoré |
| Avertissement du compilateur C4181 | qualificateur appliqué au type référence : ignoré |
| Avertissement du compilateur (niveau 1) C4182 | le niveau d’imbrication #include est nest_count profond ; récursivité infinie possible |
| Avertissement du compilateur (niveau 1) C4183 | 'identificateur' : type de retour manquant ; supposé être une fonction membre renvoyant 'int' par défaut |
| Avertissement du compilateur (niveau 1) C4185 | ignorer l'attribut d'importation inconnu #'attribute' |
| Avertissement du compilateur (niveau 1) C4186 | # l’attribut import 'attribute' nécessite les arguments argument_count ; ignoré |
| Avertissement du compilateur (niveau 1) C4187 | Les attributs #import « attribut1 » et « attribute2 » sont incompatibles ; les deux sont ignorés |
| Avertissement du compilateur (niveau 1) C4188 | expression constante non intégrale |
| Avertissement du compilateur (niveaux 3 et 4) C4189 | « identifier » : variable locale initialisée mais non référencée |
| Avertissement du compilateur (niveau 1) C4190 | 'identifier1' a une liaison C spécifiée, mais retourne 'identifier2' qui est incompatible avec C |
| Avertissement du compilateur (niveau 3, éteint) C4191 | « opération » : conversion non sécurisée du « type_of_expression » au « type_required » Effectuer un appel de fonction à l’aide du pointeur résultant peut entraîner l’échec de votre programme |
| Avertissement du compilateur (niveau 3) C4192 | exclure automatiquement« identificateur » lors de l’importation de la bibliothèque de types « library » |
| Avertissement du compilateur (niveau 3) C4193 | #pragma warning(pop) : pas de '#pragma warning(push)' correspondant |
| Avertissement du compilateur (niveau 1) C4194 | #pragma start_map_region ne peut pas être imbriqué ; Ignoré |
| Avertissement du compilateur (niveau 1) C4195 | #pragma stop_map_region utilisé sans correspondance #pragma start_map_region; ignoré |
| Avertissement du compilateur (niveau 1) C4196 | « jeton1 » ou « jeton2 » attendu ; trouvé « jeton3 » |
| Avertissement du compilateur (niveau 3) C4197 | 'type' : le niveau supérieur de volatile dans le cast est ignoré |
| Avertissement du compilateur (niveau 1, niveau 2, niveau 3 et niveau 4) C4199 | Message |
Voir aussi
Erreurs et avertissements du compilateur C/C++ et des outils de génération
Avertissements du compilateur C4000 à C5999