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