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);
让我知道。
最佳答案
这是元素的数量。
如果您查看MSDN文档的最新版本(删除引用的URL的(v=vs.80)
部分),则会显示:
(“字符”是指逻辑字符(实际上是代码单位),而不是char
。)
通常,Windows函数的“宽”版本使用字符计数,而不是字节大小。
关于c++ - 是vswprintf_s缓冲区大小或numberofElements的第二个参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16732806/