C6272
警告 C6272:传递了非浮点型参数 <number>,而对 <function> 的调用需要浮点型参数
此警告意味着,格式字符串指定需要浮点数,例如,对 printf, 指定 %f 或 %g,但所传递的是非浮点数,如整数或字符串。 此缺陷可能导致错误的输出;但是,在某些情况下,可能会导致系统崩溃。
示例
下面的代码生成此警告:
#include <stdio.h>
#include <string.h>
void f()
{
char buff[5];
int i=5;
sprintf(buff,"%s %f","a",i);
}
若要更正此警告,请使用 %i 来代替 %f 规范,如下面的代码所示:
#include <stdio.h>
#include <string.h>
void f()
{
char buff[5];
int i=5;
sprintf(buff,"%s %i","a",i);
}
下面的代码通过使用安全的字符串操作函数 sprintf_s 来更正此警告:
#include <stdio.h>
#include <string.h>
void f()
{
char buff[5];
int i=5;
sprintf_s(buff,5,"%s %i","a",i); // safe version
}