gpt4 book ai didi

c - 在有或没有 UNICODE 支持的情况下,如何在我的程序中使用 _stprintf?

转载 作者:可可西里 更新时间:2023-11-01 14:01:43 24 4
gpt4 key购买 nike

如果定义了 _UNICODE,则 Microsoft 的 _stprintf 定义为 swprintf,否则定义为 sprintf .但是这些函数有不同的参数!在 swprintf 中,第二个参数是缓冲区大小,但是 sprintf 没有这个。

有人犯错了吗?如果是这样,这是一个很大的问题。我如何在我的程序中使用 _stprintf,并让它们在使用和不使用 _UNICODE 的情况下工作?

最佳答案

您在这里看到了平行进化。 swprintf是标准 C 的后来者,在发现 (A) 8 位不足以用于文本和 (B) 您应该将缓冲区大小与缓冲区一起传递之后。 TCHAR是微软统一 ASCII 和 Unicode API 的想法。他们丢了球,漏掉了点 (B)。适当的 TCHAR解决方案应该是定义 _stprintf作为 swprintfsnprintf .

解决方案是简单地包装 <tchar.h>并自己做。

关于c - 在有或没有 UNICODE 支持的情况下,如何在我的程序中使用 _stprintf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/594799/

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