C6303

更新:2007 年 11 月

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