vswprintf_s:msdn link
int vswprintf_s(
wchar_t *buffer,
size_t numberOfElements,
const wchar_t *format,
va_list argptr
);
我对MSDN声明的第二个元素感到困惑:
numberOfElements 缓冲区大小。
但是参数的名称另有说明:要复制到输出缓冲区的实际元素数
所以,如果我有:
void print(wchar_t* format, ...){
wchar_t outString[1024];
va_list arguments;
va_start(arguments, format);
vswprintf_s(outString, sizeof(outString), format, arguments);
va_end(arguments);
}
我应该(缓冲区的大小)或者:
vswprintf_s(outString, sizeof(outString)/sizeof(outString[0]), format, arguments);
让我知道。
答案 0 :(得分:2)
这是元素的数量。
如果您查看更新版本的MSDN文档(删除您引用的网址的(v=vs.80)
部分),则会显示:
numberOfElements
:以字符为单位的缓冲区大小。
(“字符”表示逻辑字符(实际上是代码单位),而不是char
s。)
通常,“宽”版本的Windows函数使用字符计数,而不是字节大小。