次の方法で共有


C6272

警告 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
}

参照

関連項目

sprintf、_sprintf_l、swprintf、_swprintf_l、__swprintf_l