C6272
Aviso C6272: não float é passado como o argumento <number> Quando float é necessária na chamada para <function>
Este aviso indica que a seqüência de caracteres de formato Especifica que um float é necessária, por exemplo, um %f ou %g especificação para printf, , mas uma não-float como, por exemplo, um inteiro ou seqüência de caracteres que está sendo passada. Esse defeito é provavelmente resultará em uma saída incorreta; No entanto, em determinadas circunstâncias, ele pode resultar em uma falha.
Exemplo
O código a seguir gera este aviso:
#include <stdio.h>
#include <string.h>
void f()
{
char buff[5];
int i=5;
sprintf(buff,"%s %f","a",i);
}
Para corrigir esse aviso, use %i em vez de %f especificação, conforme mostrado no código a seguir:
#include <stdio.h>
#include <string.h>
void f()
{
char buff[5];
int i=5;
sprintf(buff,"%s %i","a",i);
}
O código a seguir usa a função de manipulação de cadeia de caracteres seguras, sprintf_s, para corrigir este aviso:
#include <stdio.h>
#include <string.h>
void f()
{
char buff[5];
int i=5;
sprintf_s(buff,5,"%s %i","a",i); // safe version
}