4

在构建这个非常简单的测试程序时

#include <iostream>
int main() {
    std::cout << "x";
}

使用 Visual Studio 2019,/Wall我得到了一个

warning C4668: '__STDC_WANT_SECURE_LIB__' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'

尝试去

#define __STDC_WANT_SECURE_LIB__ 0

在包括 iostream 结果之前

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xlocnum(1388,69): error C2039: 'sprintf_s': is not a member of '`global namespace''

至少对于我的 VS。Godbolt没有抱怨

#define __STDC_WANT_SECURE_LIB__ 1

很好,并且不会让编译器抱怨人们期望的 sprintf_s 。

Microsoft 在搜索时没有向我显示任何结果。. 所以在这里,但总的来说,我找不到很多关于是否以及如何使用该定义的资源。

有没有办法禁用安全扩展并包含<iostream>?我为此使用了错误的定义或方法吗?

4

0 回答 0