Compartir a través de


C6306

Advertencia C6306: Llamada incorrecta a <función>: considere utilizar <función> que acepta va_list como argumento

Esta advertencia indica una llamada incorrecta a la función. La familia printf incluye varias funciones que utilizan una lista variable de argumentos; sin embargo, no se puede llamar a estas funciones con un argumento va_list. Existe una familia vprintf correspondiente de funciones que se pueden utilizar para este tipo de llamadas. Llamar a la función de impresión equivocada producirá resultados incorrectos.

Ejemplo

El código siguiente genera esta advertencia:

#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);
}

Para corregir esta advertencia, utilice el código siguiente:

#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);
}

Vea también

Referencia

C6273