Warnung C6306
Falscher Aufruf von "function": Erwägen Sie die Verwendung von "Funktion", die eine va_list als Argument akzeptiert.
Hinweise
Diese Warnung weist auf einen falschen Funktionsaufruf hin. Die printf
Familie enthält mehrere Funktionen, die eine variable Liste von Argumenten verwenden. Diese Funktionen können jedoch nicht mit einem va_list
Argument aufgerufen werden. Es gibt eine entsprechende vprintf
Familie von Funktionen, die für solche Aufrufe verwendet werden können. Das Aufrufen der falschen Druckfunktion führt zu einer falschen Ausgabe.
Codeanalysename: INCORRECT_VARARG_FUNCTIONCALL
Beispiel
Der folgende Code generiert diese Warnung:
#include <stdio.h>
#include <stdarg.h>
void f(int i, ...)
{
va_list v;
va_start(v, i);
//code...
printf("%s", v); // warning C6306
va_end(v);
}
So korrigieren Sie die Warnung unter Verwendung des folgenden Codes
#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);
}
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für