共用方式為


C6302

警告 C6302: 格式字串不符合: 傳遞寬字元字串做為參數 <number>,但 <function> 的呼叫中需要字元字串

這則警告表示格式字串指定需要寬字元字串。然而,正在傳遞的是字元字串。這項缺失極可能造成某些形式的損毀。

範例

下列範例程式碼會因為將字元字串傳遞給 wprintf 函式,而產生這則警告:

#include<stdio.h>

void f()
{
  char buff[5] = "hi";

  wprintf(L"%s", buff);
}

下列範例程式碼會利用 wprintf 函式,使用 %hs 來指定單一位元組字元字串:

#include<stdio.h>

void f()
{
  char buff[5] = "hi";

  wprintf(L"%hs", buff);
}

下列範例程式碼會使用安全字串管理函式 wprintf_s,更正這則警告:

#include<stdio.h>

void f()
{
  char buff[5] = "hi";

  wprintf_s(L"%hs", buff);
}