C6306

更新:2007 年 11 月

警告 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);
}

请参见

参考

C6273