C6306C6306
avertissement C6306 : appel à <fonction > : envisagez d’utiliser <fonction > qui accepte un type va_list comme argumentwarning C6306: incorrect call to <function>: consider using <function> which accepts a va_list as an argument
Cet avertissement indique un appel de fonction incorrecte.This warning indicates an incorrect function call. Le printf
famille contient plusieurs fonctions qui acceptent une liste variable d’arguments ; Toutefois, ces fonctions ne peut pas être appelées avec un va_list
argument.The printf
family includes several functions that take a variable list of arguments; however, these functions cannot be called with a va_list
argument. Il existe un correspondant vprintf
famille de fonctions qui peuvent être utilisées pour ces appels.There is a corresponding vprintf
family of functions that can be used for such calls. Appel de la fonction d’impression incorrecte provoque une sortie incorrecte.Calling the wrong print function will cause incorrect output.
ExempleExample
Le code suivant génère cet avertissement :The following code generates this warning:
#include <stdio.h>
#include <stdarg.h>
void f(int i, ...)
{
va_list v;
va_start(v, i);
//code...
printf("%s", v); // warning 6306
va_end(v);
}
Pour corriger cet avertissement, utilisez le code suivant :To correct this warning, use the following code:
#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);
}