C6303
警告 C6303:格式字符串不匹配: 传递了宽字符字符串参数 <number>,而对 <function> 的调用需要字符字符串参数
此警告意味着格式字符串指定需要字符字符串。 但是,传递的是宽字符字符串。 此缺陷有可能会导致某种形式的系统崩溃或损坏。
示例
下面的代码示例生成此警告:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf("%s", buff);
}
若要更正此警告,请使用 %ls,如下面的代码示例所示:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf("%ls", buff);
}
下面的代码示例使用安全的字符串操作函数 printf_s 来更正此警告:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf_s("%ls",buff);
}