_CRT_SECURE_NO_WARNINGS

在编程的过程中我们常常会遇到一些过时或者不安全的函数

举一个简单的例子:

很多带"_s"后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,因为有时候黑客可以利用原版的不安全性黑掉系统。

而往往大家会觉得麻烦,如果不想用新的安全函数,这里提供两种简单的方法供大家参考:

1.使用提示中的_CRT_SECURE_NO_WARNINGS来禁止此类警告

在头文件前定义宏:#define _CRT_SECURE_NO_WARNINGS

上面的例子就可修改为:

#define _CRT_SECURE_NO_WARNINGS 

#include<stdio.h>

int main()
{
	int a;
	scanf("%d", &a);
	printf("%d", a);
	return 0;
}

2.根据警告信息的号码用#pragma预处理命令禁止此类警告

上面的例子可改为:

#pragma warning(disable:4996)

#include<stdio.h>

int main()
{
	int a;
	scanf("%d", &a);
	printf("%d", a);
	return 0;
}
时间: 2024-11-05 11:48:06

_CRT_SECURE_NO_WARNINGS的相关文章

VS下关于 _CRT_SECURE_NO_WARNINGS 问题的分析与解决

一.问题的起因 六月下旬,老师布置了有关图形学的课设,于是我将我在VS2013中写好的代码进行编译,结果得到了以下信息: 二.解决方法 1,按照英文提示,我先将fopen改成了fopen_s后,发现错误比原来还多,于是请教了朋友,他说加有关 _CRT_SECURE_NO_WARNINGS 的宏定义 于是可以尝试在程序的前面加上如下宏定义: #define _CRT_SECURE_NO_WARNINGS #include "stdafx.h" #include<Windows.h&

VS中设置#define _CRT_SECURE_NO_WARNINGS的两种方式

1.我们在编译老的用C语言的开源项目如lua源包的时候,可能因为一些老的.c文件使用了strcpy,scanf等不安全的函数,而报警告和错误,而导致无法编译通过. 2.此时我们有两种解决方案: a.在指定的源文件的开头定义:#define _CRT_SECURE_NO_WARNINGS  (只会在该文件里起作用) b.在项目属性里设置,这会在整个项目里生效,依次选择:属性->配置属性->C/C++ ->预处理器->预处理器定义->编辑 最下面加上一行:_CRT_SECURE_

VS报错:_CRT_SECURE_NO_WARNINGS

常见报错:warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 解决方法: 1. 在预编译头文件stdafx.h里(注意:一定要在没有include任何头文件之前)定义下面的宏: #define

VS关于 _CRT_SECURE_NO_WARNINGS 警告说明

在VS中调用 strcpy.strcat 等函数时会提示 _CRT_SECURE_NO_WARNINGS 警告,原因是这些函数不安全,可能会造成内存泄露等. 所以建议采用带_s的函数,如strcpy_s,calloc_s. 当然,如果执意使用老版本.非安全版本函数,可以使用 _CRT_SECURE_NO_WARNINGS 标记来忽略这些警告问题. 方法一: 在写代码的前面加上如下宏定义: #define _CRT_SECURE_NO_WARNINGS 方法二: 操作 vs 中,在项目 -> 属性

To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

在VS2013中,使用提示中的_CRT_SECURE_NO_WARNINGS,以下是使用方法: 1.项目属性-->C/C++-->预处理器-->预处理器定义. 2. 点击后栏. c. 输入:_CRT_SECURE_NO_WARNINGS(与前面的要用分号分开,后面加分号)

在VS2013 使用C语言库函数,出现出现错误,提示使用不安全函数use _CRT_SECURE_NO_WARNINGS

在VS 2013 中编译 C 语言项目,如果使用了 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. 原因是Visual C++ 2012 使用了更加安

vs关于_CRT_SECURE_NO_WARNINGS警告说明

在VS中调用 strcpy.strcat 等函数时会提示 _CRT_SECURE_NO_WARNINGS 警告,原因是这些函数不安全,可能会造成内存泄露等.比如: 1: #include <stdio.h> 2: #include <stdlib.h> 3: #include <string.h> 4: 5: int main(void) 6: { 7: char buf[1024]; 8: sprintf(buf, "%s", "abc&

无法打开源文件:“_CRT_SECURE_NO_WARNINGS

右击工程 - 属性 - 配置属性 - C/C++ - 命令行   命令行增加:/D_CRT_SECURE_NO_WARNINGS 原文地址:https://www.cnblogs.com/hshy/p/12302099.html

HDU 1075 What Are You Talking About (Trie树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1075 map可以过...我上的字典树,小bug有点尴尬,题目没有明确给出数据范围也是无奈. 贡献了几次RE 一次WA.尴尬.discuss里面有个说注意前缀的到是给了点tip.总体来说不错 代码: 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <functional> 3 #include <algorithm> 4 #include <