以下代码为调用生成 Lint 警告 559“3 号参数的大小与格式不一致” wsprintf
,谁能解释为什么?
WCHAR szFoo[] = L"test";
WCHAR szBar[MAX_PATH];
wsprintf(szBar, L"c:\\path\\%s\\path", szFoo);
有趣的是,如果我将格式类型更改%S
为不再引发警告,但这当然会将 szFoo 重新解释为 LPSTR 而不是 LPWSTR,这也是错误的。
当然,我可以只用 Lint 评论警告,但我很想知道它为什么认为有问题。