C6272
警告 C6272: 傳遞非浮點做為引數 <number>,但 <function> 呼叫中需要浮點
這個警告表示格式字串 (Format String) 指定需要浮點 (例如,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
}