关闭Visual Studio编译器警告C4996

版权声明:原创博文,转载请注明出处! https://blog.csdn.net/sunriver2000/article/details/84498988

使用VS2005以及后续版本编译strcpy、sprintf等函数时,会出现如下C4996警告。

warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
5>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\string.h(105) : 参见“strcpy”的声明
warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
5>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(371) : 参见“sprintf”的声明

 对于此类警告,正规的做法是移植时使用诸如strcpy_s、sprintf_s函数替代strcpy、sprintf函数,消除警告。

然而,对于某些特殊的代码使用strcpy_s函数替代可能会有困难。或许,我们想暂时排除编译器的骚扰(眼不见为净嘛^.^),开展更为急迫的工作。因此,下面的方法可能会有用武之地。

方法一

代码中添加#pragma warning预处理指令,修改编译器对C4996警告消息的行为 。

关闭全部C4996警告。

#pragma warning(disable:4996)        //关闭全部

 只显示一次警告。

#pragma warning(once:4996)           //只显示一次警告

方法二

打开工程配置属性页后,点击配置属性>C/C++>预处理器,增加预处理定义_CRT_SECURE_NO_WARNINGS。

猜你喜欢

转载自blog.csdn.net/sunriver2000/article/details/84498988