gpt4 book ai didi

c++ - 是 vswprintf_s 缓冲区大小或 numberofElements 中的第二个参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:27 25 4
gpt4 key购买 nike

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) 部分),它说:

numberOfElements: Size of buffer in characters.

(“字符”表示逻辑字符(实际上是代码单元),而不是 char。)

通常 Windows 函数的“宽”版本使用字符计数,而不是字节大小。

关于c++ - 是 vswprintf_s 缓冲区大小或 numberofElements 中的第二个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16732806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com