共用方式為


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