gpt4 book ai didi

c++ - swprintf 声明不匹配

转载 作者:搜寻专家 更新时间:2023-10-31 00:58:39 25 4
gpt4 key购买 nike

我在 Windows 上使用 MinGW g++ 编译器(gcc 版本 4.8.1),我对 swprintf 声明感到困惑

根据 this reference应该是

int swprintf (wchar_t* ws, size_t len, const wchar_t* format, ...);

但是当我使用

swprintf(my_ws, 32, L"hello");

我收到错误

initializing argument 2 of 'int swprintf(wchar_t*, const wchar_t*, ...)' [-fpermissive]

看起来 size_t len 不在声明中。引用有误吗?我是不是漏掉了什么,或者这背后有什么故事?

最佳答案

您正在使用不符合 C99 标准的 C 库。

MinGW 是 gcc 的一个端口,它使用 Microsoft C 运行时库。

在标准化为 C99 之前,Microsoft 有自己的 swprintf 版本,但原型(prototype)不同。这是一个非常古老的 C 库,有很多 C99 不兼容性,例如我认为它的 printf 不支持 %zu for size_t。 ..

如果他们使用更新的运行时,您应该升级到更新版本的 MinGW。否则,您将不得不使用旧原型(prototype),并忍受这些过时的 API。

关于c++ - swprintf 声明不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35072373/

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