C6306
Aviso C6306: telefonar incorreta para <função>: Considere o uso de <função>que aceita um va_list sistema autônomo um argumento
Este aviso indica uma telefonar de função incorreta.The printf família inclui várias funções que levam a uma lista de argumentos variável; no entanto, essas funções não podem ser chamadas com um va_list argumento. Há um correspondente vprintf família de funções que podem ser usados para essas chamadas. Chamar a função de impressão incorreta fará com que a saída incorreta.
Exemplo
O código a seguir gera este aviso:
#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 corrigir esse aviso, use o seguinte código:
#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);
}