Поделиться через


C6306

Обновлен: Ноябрь 2007

C6306

Предупреждение C6306: неверный вызов <функции>: попробуйте использовать <функцию>, принимающую va_list в качестве аргумента.

Это предупреждение означает неверный вызов функции. Семейство printf включает несколько функций с переменным набором аргументов, но эти функции нельзя вызывать с аргументом va_list. Для таких вызовов существует соответствующее семейство функций vprintf. Вызов неверной функции печати приведет к неверным выходным данным.

Пример

Это предупреждение создается следующим кодом:

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

Для устранения этого предупреждения используйте следующий код:

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

См. также

Ссылки

C6273