VS(Vsual stdio)针对C4996错误解决

来源:互联网 发布:淘宝保证金管理在哪里 编辑:程序博客网 时间:2024/05/24 00:20
今天听某个小伙伴说自己写的一个字符串拷贝程序为什么编译不了,最后叫他把代码发过来看了下
原来是C4996错误
先来说下为什么会有这个错误吧,Visual stdio(Vs) 是微软旗下的一款IDE(集成开发环境)
当我们创建一个控制台程序的时候,编译器也就是VS在应用程序设置的时候会自动的帮我们把一个叫

做SDL检查勾选上。

当我们写代码的时候用了一些不安全的函数列如strcpy,scanf这些,编译器就会报错。

错误如下:
error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details
这句话的翻译就是:
错误c4996:scanf函数或变量:这可能是不安全的。考虑使用scanf_s相反。禁用贬低,用_crt_secure_no_warnings。详情见联机帮助
说的深层次点就是SDL检查为启用附加安全检查,C4996错误是编译器遇到了标记有deprecated(已弃用)的函数,原因应该为新版本已不推荐使用scanf函数,改用scanf_s函数,更为安全。
那我们怎么解决这个问题呢?其实我们只需要在代码第一行写一个预定以宏就可以了
#define _CRT_SECURE_NO_WARNINGS 这句代码的作用就是定义安全的
或者还有一种解决办法就是也是在包含头文件的时候加上这句代码也是可以解决C4996错误的
#pargma warning (disable:4996)这两种方法都可以,看你自己选择哪一种。

上面两种随便一种都可以解决
好了最后希望热爱网络喜欢编程的朋友能多多交流,互相学习,多踩踩博主的博客,博主也会不断更新的
也希望大家指出我说的不足的地方谢谢


2 0