Avertissement C6302
Mettre en forme une incompatibilité de chaîne.
Notes
Cet avertissement indique qu’une chaîne de format spécifie une chaîne de caractères large, mais qu’elle passe une chaîne de caractères étroite à la place. L’une des causes de l’avertissement est parce que la signification et %s
%S
le retournement lorsqu’il est utilisé avec printf
ou wprintf
. Ce défaut peut entraîner des blocages, en plus d’une sortie potentiellement incorrecte.
Nom de l’analyse du code : CHAR_WCHAR_ARGUMENT_TO_FORMAT_FUNCTION
Exemple
Le code suivant génère cet avertissement. buff
est une chaîne de caractères étroite, mais wprintf_s
est la variante de chaîne large de printf_s
et s’attend %s
donc à être large :
void f()
{
char buff[5] = "hi";
wprintf_s(L"%s", buff);
}
L’exemple de code suivant corrige ce problème à l’aide %hs
de la spécification d’une chaîne de caractères d’un octet. Il peut également avoir basculé vers %S
une chaîne étroite lorsqu’elle est utilisée avec wprintf
des fonctions similaires. Consultez la syntaxe de spécification de format : printf
et wprintf
les fonctions pour plus d’options.
void f()
{
char buff[5] = "hi";
wprintf_s(L"%hs", buff);
}
Voir aussi
Syntaxe de spécification de format : printf
et wprintf
fonctions
C4477
C6303
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