Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。是一款主流代码编辑器。
初学者对于VS的使用可能还不是很透彻,尤其是VS 的安全检查
下面介绍两种去除安全检查的方法,以VS2015为例,其他VS编译器操作方法基本一样
1.建好工程,临时补救
我们先输入一段简单的代码,
#include <stdio.h>
int main(void)
{
int i;
printf("请输入一个数字:");
scanf("%d", &i);
printf("这个数字是:%d\n", i);
return 0;
}
然后编译一下可以看到,编译的报错提示:
可以看到,编译器提示我们 scanf 是不安全的,提示我们使用 scanf_s 来替代,但是替代后对于VS是可以接受的,换到其他编译器就不一定可以被接受了,这就导致程序的可移植性被破坏,所以我们此时可以使用后面的来补救一下,把其中的 “ _CRT_SECURE_NO_WARNINGS ”复制出来,放到代码的最前面,并在前面加上“ #define ”和一个空格,在后面写上“1”
就像这样:
就是这个头:
#define _CRT_SECURE_NO_WARNINGS 1
下面是完整的代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main(void)
{
int i;
printf("请输入一个数字:");
scanf("%d", &i);
printf("这个数字是:%d\n", i);
return 0;
}
再次编译就可以看到就没有报错提示,可以正常运行了
关闭此项安全检查
既然是由于编辑器的安全检查而引起的报错,那么我们是不是可以选择去掉这项安全检查,而实现代码正常运行呢?
答案是可以的!
通过观察报错提示,可以看到错误提示号为:4996,我们可以在代码的头部加上如下的定义,来去掉该条报错:
# pragma warning(disable:4996)
这样 就可以实现了。
2.一劳永逸,不在麻烦
在上面的方法中,我们复制一下那个头
就是这个
#define _CRT_SECURE_NO_WARNINGS 1
然后在我们的VS安装路径中找到一个 newc++file.cpp 文件,
我的是在路径安装盘-VS2015-VC-vcprojectitems 中找到的,不同版本可能略有不同,如果找不到可以使用 Windows自带的搜索或是 第三方搜索工具(例如everything)来寻找,找到后,打开【我电脑所有的c文件都是默认VC++6.0打开的,没有的可以使用任意一个可以打开c文件的编译器打开】在里面的第一行放入这句话,Ctrl+S保存,就可以了
这样,在我们每个新建的项目前面就都会有一个已经写好的了,就很方便,就像这样,就再也不用担心安全检查了
3.在新建时的小心机
主要就是直接选择不用安全检查
选择【文件】-【新建项目】-【win32】-【win32控制台应用程序】
就像下图这样
然后确定,在下一步的安全检查中的【附加项目】中,取消其默认勾选的【编译开头】和【安全生命周期检查】,改为勾选【空项目】,就像这样:
单击【完成】就可以了,然后添加一个后缀为.c的头文件,让我们再次放上上面的代码,
#include <stdio.h>
int main(void)
{
int i;
printf("请输入一个数字:");
scanf("%d", &i);
printf("这个数字是:%d\n", i);
return 0;
}
编译一下,可以看到,是没有安全检查的,运行也是没有问题的
好了,这就是解决VS编译器安全检查的四种方法,以后有更好的方法我会及时更。
感谢观赏,慢慢提高