C6306
警告 C6306: <function> 呼叫不正確: 請考慮使用可接受 va_list 做為引數的 <function>
這項警告表示函式呼叫不正確。 printf 系列包含數個採用可變引數清單的函式,但是這些函式不能用 va_list 引數呼叫。 可用於此類呼叫的函式會有對應的函式 vprintf 系列。 呼叫錯誤的 print 函式將會造成不正確的輸出。
範例
下列程式碼將產生出這個警告:
#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);
}