最近使用Visual Studio 2015编写c程序,遇到如下错误:
按照错误提示,右击去查看在线帮助。帮助文章的标题为“编译器警告(等级3) C4996”.
以下为帮助文章所述:
C4996可能会发生,因为编译器遇到了标记有deprecated(被弃用)的函数。在未来版本中可能不再支持此函数。可以用waring杂注关闭此警告(如下例所示)。
为了支持新的、更安全的函数,否决了某些CRT和标准C++库函数。有关要改用的函数的更多信息,请参见错误消息中被否决的函数的文档。若要关闭CRT否决警告,请定义_CRT_SECURE_NO_WARNINGS。有关不推荐使用的函数的更多信息,请参见CRT中的安全功能和安全库:C++标准库。
由上所述,这错误/警告的出现是因为使用了被否决的,也就是不安全的函数(具有可能不安全的参数的函数调用,此调用依靠调用方检查传递的值是否正确),如这里我们所使用的strcpy函数,推荐我们使用的是strcpy_s函数,这里的_s可以认为是代表secure的意思。其推荐的函数的用法可以与原应的不同,只要稍加查询即可。这里我们来把这个错误取消掉,按说明,我们要定义_CRT_SECURE_NO_WARNINGS,但我们要定义在stdio.h和string.h这两个头文件前才可以,也就是:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h>
未经允许不得转载:TacuLee » 如何使用_CRT_SECURE_NO_WARNINGS