C6272
更新 : 2007 年 11 月
警告 C6272: float でない値が引数 <数値> として渡されました。<関数> への呼び出しには float が必要です
この警告は、書式指定文字列により float 型が必要であることが指定されている (たとえば、printf, に %f または %g を設定) にもかかわらず、整数や文字列などの非 float 型が渡されることを示します。この問題により、不適切な出力が生成されるだけでなく、場合によってはクラッシュが起こる可能性もあります。
使用例
この警告が発生するコード例を次に示します。
#include <stdio.h>
#include <string.h>
void f()
{
char buff[5];
int i=5;
sprintf(buff,"%s %f","a",i);
}
この警告を解決するには、次のコードに示すように、%f を指定する代わりに %i を使用します。
#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
}