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