Avertissement C6306
Appel incorrect à ' fonction' : envisagez d’utiliser 'function' qui accepte un va_list en tant qu’argument
Notes
Cet avertissement indique un appel de fonction incorrect. La printf
famille comprend plusieurs fonctions qui prennent une liste variable d’arguments . Toutefois, ces fonctions ne peuvent pas être appelées avec un va_list
argument. Il existe une famille de fonctions correspondantes vprintf
qui peuvent être utilisées pour ces appels. L’appel de la fonction d’impression incorrecte entraîne une sortie incorrecte.
Nom de l’analyse du code : INCORRECT_VARARG_FUNCTIONCALL
Exemple
Le code suivant génère cet avertissement :
#include <stdio.h>
#include <stdarg.h>
void f(int i, ...)
{
va_list v;
va_start(v, i);
//code...
printf("%s", v); // warning C6306
va_end(v);
}
Pour corriger cet avertissement, utilisez le code suivant :
#include <stdio.h>
#include <stdarg.h>
void f(int i, ...)
{
va_list v;
va_start(v, i);
//code...
vprintf_s("%d",v);
va_end(v);
}
Voir aussi
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