C6274
警告 C6274:传递了非字符型参数 <number>,而对 <function> 的调用需要字符型参数
此警告意味着,格式字符串指定需要的是字符(例如 %c 或 %C 规范),但所传递的是非整数,如浮点型、字符串或结构。 此缺陷可能导致错误的输出。
示例
下面的代码生成此警告:
#include <stdio.h>
#include <string.h>
void f(char str[])
{
char buff[5];
sprintf(buff,"%c",str);
}
若要更正此警告,请使用下面的代码:
#include <stdio.h>
#include <string.h>
void f(char str[])
{
char buff[5];
sprintf(buff,"%c",str[0]);
}
下面的代码使用安全的字符串操作函数 sprintf_s 来更正此警告:
#include <stdio.h>
#include <string.h>
void f(char str[])
{
char buff[5];
sprintf_s(buff,5,"%c", str[0]);
}