【发布时间】:2011-08-07 23:01:58
【问题描述】:
以下代码为 wsprintf 调用生成 Lint 警告 559“3 号参数的大小与格式不一致”,谁能解释原因?
WCHAR szFoo[] = L"test";
WCHAR szBar[MAX_PATH];
wsprintf(szBar, L"c:\\path\\%s\\path", szFoo);
有趣的是,如果我将格式类型更改为 %S,则不再引发警告,但这当然会将 szFoo 重新解释为 LPSTR 而不是 LPWSTR,这也是错误的。
当然,我可以直接将警告注释掉,但我很想知道它为什么认为有问题。
【问题讨论】: