问题描述
我使用的是 VS2019。
解决方法
MSVCRT 与 UCRT 这是 Microsoft Windows 上 C 标准库的两个变体。
MSVCRT(Microsoft Visual C++ 运行时)在所有 Microsoft Windows 版本上默认可用,但由于向后兼容性问题一直停留在过去,不兼容 C99 并且缺少一些功能。 >
- 它不兼容 C99,例如 printf() 函数系列,但是...
- mingw-w64 提供了替换功能,使 C99 在许多情况下兼容
- 它不支持 UTF-8 语言环境
- 与 MSVCRT 链接的二进制文件不应与 UCRT 文件混合使用,因为内部结构和数据类型不同。相同的规则适用于 MSVC 编译的二进制文件,因为 MSVC 默认使用 UCRT(如果未更改)。
- 开箱即用,适用于每个 Microsoft Windows 版本。
UCRT (Universal C Runtime) 是一个较新的版本,Microsoft Visual Studio 默认也使用它。它应该像使用 MSVC 编译代码一样工作和运行。
- 在构建时和运行时均与 MSVC 更好地兼容。
- 它仅在 Windows 10 上默认提供,对于旧版本,您必须自己提供或取决于安装它的用户。