_SCL_SECURE_NO_WARNINGS

在 C++ 标准库中,若调用任何存在安全威胁的方法,将导致编译器警告(等级 3)C4996。 若要禁用此警告,可在代码中将宏定义为 _SCL_SECURE_NO_WARNINGS:

#define _SCL_SECURE_NO_WARNINGS

如果使用预编译标头,请在包含任何 C 运行时库或标准库标头之前将此指令放入预编译头文件中。 如果在包含预编译头文件之前将其放入单个源代码文件中,编译器将忽略该文件。

备注

禁用 C4996 警告的其他方式包括:

  • 使用 /D(预处理器定义)编译器选项:

    cl /D_SCL_SECURE_NO_WARNINGS [其他编译器选项] myfile.cpp

  • 使用 /w 编译器选项:

    cl /wd4996 [其他编译器选项] myfile.cpp

  • 使用 #pragma warning 指令:

    #pragma warning(disable:4996)
    

此外,还可以使用 /w<l><n> 编译器选项手动更改警告 C4996 的级别。 例如,可将警告 C4996 设置为级别 4:

cl /w44996 [其他编译器选项] myfile.cpp

有关详细信息,请参阅 /w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX(警告级别)

另请参阅

安全库:C++ 标准库