Avertissements du compilateur Microsoft C/C++ C4000 à C4199
Les articles de cette section décrivent les messages d’avertissement du compilateur Microsoft C/C++ C4000 à C4199.
Important
Les compilateurs et outils de génération Visual Studio peuvent signaler de nombreux types d'erreurs et d'avertissements. Après la détection d'une erreur ou d'un avertissement, les outils de compilation peuvent faire des hypothèses quant à l'intention du code et tenter de continuer, afin de signaler davantage 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 faire disparaître de nombreuses erreurs ultérieures.
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 concernant cette erreur, si elle existe. 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. Ou, parcourir la liste des erreurs et des avertissements par outil et type dans la table des matières de cette page.
Remarque
Tous les erreurs ou avertissements Visual Studio ne sont pas documentés. Dans de nombreux cas, le message de diagnostic fournit toutes les informations disponibles. Si vous êtes arrivé sur cette page en utilisant F1 et que vous pensez que le message d’erreur ou d’avertissement nécessite une explication supplémentaire, faites-le-nous savoir. Vous pouvez utiliser les boutons de commentaires sur cette page pour soulever un problème de documentation sur GitHub. Si vous pensez que l’erreur ou l’avertissement est incorrect ou si vous avez trouvé un autre problème concernant 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 envoyez une suggestion à l’aide de Aide > Envoyer des commentaires > Envoyer une suggestion.
Vous trouverez peut-être une aide supplémentaire sur les erreurs et avertissements dans les forums de Q&A Microsoft Learn. Ou, vous pouvez rechercher le numéro d’erreur ou d’avertissement sur le site Developer Community de Visual Studio C++. Vous pouvez également rechercher 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 C4000 | AVERTISSEMENT INCONNU Choisissez la commande Support technique sur Visual C++ Menu Aide ou ouvrir le fichier d’aide du support technique pour plus d’informations |
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(e) ; supposant qu’extern retournant 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 | « fonction » : incompatibilité de pointeur pour le paramètre réel « parameter_number » |
Avertissement du compilateur (niveau 1) C4023 | « fonction » : pointeur basé passé à une fonction non prototypée : « parameter_number » |
Avertissement du compilateur (niveau 1) C4024 | « fonction » : différents types pour le paramètre formel et réel « parameter_number » |
Avertissement du compilateur (niveau 1) C4025 | « fonction » : pointeur based passé à une fonction avec des arguments de variables : « 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 : arrêt de la sortie de l’explorateur |
Avertissement du compilateur (niveau 1) C4042 | « identificateur » : a une classe de stockage incorrecte |
Avertissement du compilateur (niveau 1) C4045 | « array » : dépassement des limites d’index 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 : arrêt de l'émission du numéro 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 Null pour « ?: » |
Avertissement du compilateur (niveau 1) C4055 | « conversion » : du pointeur donnée « type1 » en pointeur fonction « type2 » |
Avertissement du compilateur (niveau 2) C4056 | dépassement d'une opération arithmétique de constante 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 aucune étiquette « case » ou « default » |
Avertissement du compilateur (niveau 4, éteint) C4061 | l'énumérateur « identificateur » dans un switch de « l’énumération » enum n'est pas géré explicitement par une étiquette case |
Avertissement du compilateur (niveau 4, éteint) C4062 | « l’identificateur » énumérateur dans un commutateur de enum « l’énumération » n’est pas géré |
Avertissement du compilateur (niveau 4) C4063 | la case « identificateur » n’est pas une valeur valide pour le commutateur enum en tant « qu’énumération » |
Avertissement du compilateur (niveau 4) C4064 | commutation incomplète de enum en tant « qu'énumération » |
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 | 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 | « fonction » : incompatibilité de pointeur dans le paramètre réel « parameter_number », paramètre formel « parameter_number » |
Avertissement du compilateur (niveau 1) C4089 | « fonction » : différents types dans le paramètre réel « parameter_number », 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 « unsigned long » |
Avertissement du compilateur (niveau 2) C4094 | « jeton » non marqué 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 | « identificateur » : paramètre formel 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 » réservé, « commande » ignorée |
Avertissement du compilateur (niveau 1) C4119 | bases différentes « base1 » et « base2 » spécifiées |
Avertissement du compilateur (niveau 1) C4120 | incompatibilité basée/non basé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 une 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 : un objet const 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 en 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 | « same_seg » pragma non pris en charge ; utiliser 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 sera 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 « suppression » de tableau ; substituée par la forme de tableau |
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 exécuté un pop sur l'identificateur qui « identifier » a préalablement fait l'objet d'un push |
Avertissement du compilateur (niveau 1) C4160 | #pragma « pragma »(pop,...) : impossible de trouver l'identificateur « identifier » qui a préalablement fait l'objet d'un push |
Avertissement du compilateur (niveau 3) C4161 | #pragma « pragma »(pop...) : plus de pops que d’envois |
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 d’une variable locale ou d’un optional_context temporaire |
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 de la portée globale ou de la portée espace de noms |
Avertissement du compilateur (niveau 1) C4178 | La constante « case constante » 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 ; fonction membre retournant « int » prise par défaut |
Avertissement du compilateur (niveau 1) C4185 | ignorer l’attribut #import « attribute » |
Avertissement du compilateur (niveau 1) C4186 | # en tant qu’importation de l’attribut « attribute » nécessite des 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 la liaison C spécifiée, mais retourne l’UDT « identificateur2 » 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) : aucune correspondance « #pragma warning(push) » |
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 » : l’alignement de niveau volatile supérieur est ignoré |
Avertissement du compilateur (niveau 1, niveau 2, niveau 3 et niveau 4) C4199 | message |
Voir aussi
Erreurs d’outils et avertissements de compilateur C/C++ et de build
Avertissements du compilateur C4000 - C5999
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour