Warnung C6272
Nicht-Float-Passed as argument 'number', when float is required in call to 'function-name'
Hinweise
Diese Warnung gibt an, dass die Formatzeichenfolge angibt, dass ein Float erforderlich ist. Beispielsweise wird eine oder %g
eine %f
Spezifikation für printf
, aber ein nicht floatender Wert, z. B. eine ganze Zahl oder eine Zeichenfolge, übergeben. Dieser Fehler kann zu Abstürze führen, zusätzlich zu potenziell falschen Ausgaben.
Codeanalysename: NON_FLOAT_ARGUMENT_TO_FORMAT_FUNCTION
Beispiel
Der folgende Code generiert diese Warnung. %f
gibt an, dass ein Float-Wert erwartet wird, aber stattdessen wird die ganze Zahl i
übergeben:
void f()
{
char buff[5];
int i=5;
sprintf_s(buff, sizeof(buff), "%s %f", "a", i);
}
Um diese Warnung zu korrigieren, ändern Sie den Formatbezeichner, oder ändern Sie die Parameter, die an die Funktion übergeben werden. In diesem Beispiel korrigieren wir diese Warnung mithilfe %i
von anstelle von %f
.
void f()
{
char buff[5];
int i=5;
sprintf_s(buff, sizeof(buff), "%s %i", "a", i);
}
Siehe auch
Syntax der Formatspezifikation: printf- und wprintf-Funktionen
sprintf
, _sprintf_l
, swprintf
, _swprintf_l
, __swprintf_l
sprintf_s
, _sprintf_s_l
, swprintf_s
, _swprintf_s_l
C4477
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