Aracılığıyla paylaş


C6306

uyarı C6306: <işlev> hatalı çağrı: <işlev> kullanmayı düşünün, bu bağımsız değişken olarak bir VA_LIST kabul eder

Bu uyarı, yanlış bir işlev çağrısını gösterir.Bir printf ailesi; bağımsız değişkenler listesini alan çeşitli işlemleri içerir; ancak bu fonksiyon bir va_list bağımsız değişkeni ile çağrılamaz.Burada, bu tür çağrılar için kullanılabilen fonksiyonun karşılık gelen vprintf ailesi vardır.Hatalı yazdırma işlevinin çağrılması, hatalı çıktıya neden olur.

Örnek

Aşağıdaki kod bu uyarıyı üretir:

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

Bu uyarıyı düzeltmek için aşağıdaki kodu kullanın:

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

Ayrıca bkz.

Başvuru

C6273