Partager via


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. 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 seul correctif peut permettre d’éliminer de nombreuses erreurs à venir.

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 êtes arrivé sur cette page quand vous avez utilisé F1, et si 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 de cette page pour signaler 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 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, puis choisissez Aide > Envoyer des commentaires > Signaler un problème, ou envoyez une suggestion via Aide > Envoyer des commentaires > Envoyer une suggestion. 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 aide supplémentaire sur les erreurs et les avertissements dans les forums de Q&A Microsoft Learn. 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(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 « 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 ; 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 et avertissements du compilateur C/C++ et des outils de génération
Avertissements du compilateur C4000 à C5999