Condividi tramite


Avviso C6272

Non float passato come argomento 'number' quando float è necessario nella chiamata a 'function-name'

Osservazioni:

Questo avviso indica che la stringa di formato specifica che è necessario un valore float. Ad esempio, una %f specifica o %g per printf, ma viene passato un valore non float, ad esempio un numero intero o una stringa. Questo difetto può causare arresti anomali, oltre a un output potenzialmente errato.

Nome dell'analisi del codice: NON_FLOAT_ARGUMENT_TO_FORMAT_FUNCTION

Esempio

Il codice seguente genera questo avviso. %f indica che è previsto un valore float, ma l'intero i viene passato:

void f()
{
     char buff[5];
     int i=5;
     sprintf_s(buff, sizeof(buff), "%s %f", "a", i);
}

Per correggere questo avviso, modificare l'identificatore di formato o modificare i parametri passati alla funzione. In questo esempio viene corretto questo avviso usando %i invece di %f.

void f()
{
     char buff[5];
     int i=5;
     sprintf_s(buff, sizeof(buff), "%s %i", "a", i);
}

Vedi anche

Sintassi della specifica del formato: funzioni printf e wprintf
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l
C4477