对于格式串是宽字符串的函数 (wprintf等),按照C99,对格式串的解释与printf是一样的,即:
%s ==> const char *
%ls ==> const wchar_t *
但是微软的实现是:
%s ==> const wchar_t *
%S或%hs ==> const char *
%s ==> const char *
%ls ==> const wchar_t *
但是微软的实现是:
%s ==> const wchar_t *
%S或%hs ==> const char *
写成%hs可以保证在微软跟其他C库下都解释成const char *
参考
http://www.newsmth.net/nForum/#!article/CProgramming/112060
https://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx