Avertissement C6303
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 étroite, mais qu’elle est passée à une chaîne de caractères large à 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 : WCHAR_CHAR_ARGUMENT_TO_FORMAT_FUNCTION
Exemple
L’exemple de code suivant génère cet avertissement. buff
est une chaîne de caractères large, mais l’appel printf_s
attend une chaîne courte comme indiqué par %s
:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf_s("%s", buff);
}
L’exemple de code suivant corrige ce problème en utilisant %ls
pour spécifier une chaîne de caractères large. Vous pouvez également passer à %S
une chaîne large lorsqu’elle est utilisée avec printf
des fonctions similaires. Consultez la syntaxe de spécification de format : printf
et wprintf
les fonctions pour plus d’options.
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf_s("%ls", buff);
}
Voir aussi
Syntaxe de spécification de format : printf
et wprintf
fonctions
C4477
C6302
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