警告 C6306:不正确的 <function> 调用: 应考虑使用接受 va_list 作为参数的 <function>
此警告意味着函数调用有误。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);
}