Advertencia C6272
No float pasado como argumento 'number' cuando se requiere float en la llamada a 'function-name'
Comentarios
Esta advertencia indica que la cadena de formato especifica que se requiere un valor float. Por ejemplo, una %f
especificación o %g
para printf
, pero se pasa un valor distinto de float, como un entero o una cadena. Este defecto puede provocar bloqueos, además de una salida potencialmente incorrecta.
Nombre del análisis de código: NON_FLOAT_ARGUMENT_TO_FORMAT_FUNCTION
Ejemplo
El código siguiente genera esta advertencia. %f
indica que se espera un valor float, pero el entero i
se pasa en su lugar:
void f()
{
char buff[5];
int i=5;
sprintf_s(buff, sizeof(buff), "%s %f", "a", i);
}
Para corregir esta advertencia, cambie el especificador de formato o modifique los parámetros pasados a la función. En este ejemplo, se corrige esta advertencia mediante %i
en lugar de %f
.
void f()
{
char buff[5];
int i=5;
sprintf_s(buff, sizeof(buff), "%s %i", "a", i);
}
Consulte también
Sintaxis de especificación de formato: funciones printf y wprintf
sprintf
, _sprintf_l
, swprintf
, _swprintf_l
, __swprintf_l
sprintf_s
, _sprintf_s_l
, swprintf_s
, _swprintf_s_l
C4477
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de