Freigeben über


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