文章目录

  • 含义:忽略warning4996
  • 扩展:#pragma warning
    • #pragma warning其他用法

含义:忽略warning4996

在使用VS 的开发者会遇到这样的问题,在使用std命名空间库函数的时候,往往会出现类似于下面的警告:

warning C4996: strcpy was declared deprecated

出现这样的警告,是因为VS 中认为CRT中的一组函数如果使用不当,可能会产生诸如内存泄露、缓冲区溢出、非法访问等安全问题。这些函数如:strcpystrcat等。

对于这些问题,VS 建议使用这些函数的更高级的安全版本,即在这些函数名后面加了一个_s的函数。这些安全版本函数使用起来更有效,也便于识别,如:strcpy_s,calloc_s等。

当 然,如果执意使用老版本、非安全版本函数,可以使用_CRT_SECURE_NO_DEPRECATE标记来忽略这些警告问题。

在“项目—>属性—>预处理器 —>预处理器定义“中添加_CRT_SECURE_NO_DEPRECATE即可。

或在程序开头添加

#pragma  warning(disable:4996)   // 全部关掉
#pragma  warning(once:4996)      // 仅显示一个

扩展:#pragma warning

  1. #pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。

  2. #pragma warning(push) 存储当前报警设置。

  3. #pragma warning(push, n) 存储当前报警设置,并设置报警级别为n。n为从1到4的自然数。

  4. #pragma warning(pop) 恢复之前压入堆栈的报警设置。在一对push和pop之间作的任何报警相关设置都将失效。

  5. #pragma warning(disable: n)将某个警报置为失效

  6. #pragma warning(default: n)将报警置为默认

  7. 某些警告如C4309是从上到下生效的。即文件内#pragma warning从上到下遍历,依次生效。

#pragma warning其他用法

开发人员可以使用 #pragma 指令将警告作为错误处理;还可以启用或禁用警告,如下面的示例所示:

1.将一个warning作为一个错误

#pragma warning (error: 6260)

2.将一个warning禁用掉

#pragma warning (disable: 6011)

3.将一个被禁用的warning启用

#pragma warning (enable: 6011)

#pragma warning(disable:4996)是啥?相关推荐

  1. 关闭VS警告#pragma warning(disable:4996)

    代码实现: #pragma warning(disable:4996) 1. #pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效.当 ...

  2. MFC工作笔记0006---#pragma warning(disable:4996)是什么意思

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 代码实现:在.H .CPP文件开头写上:#pragma warning(disable:4996) ...

  3. #pragma warning disable的用法

    #pragma warning disable 的用法 warning disable 的用法 warning disable 作用:让编译器忽略指定编号的警告,跳过警告直接运行程序,可用来忽略一部分 ...

  4. C++写#pragma warning(disable 4786)的作用

    C++编程时,在使用STL(C++标准模板库)的时候经常引发类似的错误,尤其是vector,map这类模板类,模板中套模板,一不小心就很长了. 当命名超过C++规定范围255字符时,就会产生这个名为d ...

  5. #pragma warning (disable:4200)什么意思?(清除VS工程的警告方法)

    如果项目中的烦人警告太多,可用此方法清除. 关于#pragma warning1.#pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是是对整个工程的所有文件有 ...

  6. pragma warning

    1  常用去警告: #pragma warning(disable:4035) //no return value          #pragma warning(disable:4068) // ...

  7. #pragma warning(pop) 和 #pragma warning(push)的作用

    #pragma warning(push)是保存当前的编译器警告状态: #pragma warning(pop)是恢复原先的警告状态. 例如: #pragma warning( push ) #pra ...

  8. 预处理指令pragma常见用法集锦(#pragma once、#pragma comment和#pragma warning)

    #pragma once: 这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,避免文件被重复包含. ********************************* ...

  9. C++ 中的 #pragma warning(push) 和 #pragma warning(pop)有什么用

    #pragma warning(push)是保存当前的编译器警告状态:  #pragma warning(pop)是恢复原先的警告状态. 例如:rocksdb中的一段代码 #if defined(_M ...

最新文章

  1. YOLOv3 best_iou问题
  2. 大话网站---从Hello World到高并发网站
  3. sentry 命令_sentry(二)集成sourcemap
  4. Arduino--ESP8266物联网WIFI模块(贝壳物联)--数据上传服务器(单数据接口)
  5. java对象是如何创建的
  6. CentOS(八)--crontab命令的使用方法
  7. 插入数据的时候出现错误:Error during job, obtaining debugging information…
  8. 求老板放过!我Java8还没用呢,Java14又来了...
  9. java vector编程_Java编程开发中向量(Vector)及其应用
  10. 高性能反向代理软件HAProxy(一)之基本概念
  11. python的设计哲学是优雅明确简单_Python简单教程
  12. 投入机器学习的怀抱?先学Python吧
  13. SOAPUI安装破解
  14. Python----chardet模块的使用方法
  15. 简书网页劫持分析,网站劫持,利用 CSP 预防劫持
  16. SDIO wifi Marvell8801/Marvell88w8801 介绍(二) ---- SDIO协议介绍
  17. 从零开始:微信小程序零基础入门宝典
  18. 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解
  19. 猿创征文|【简单】微信公众号推送教程 ·可直接下载运行 ·超详细
  20. 集束搜索(Beam Search)

热门文章

  1. PDM系统在饲料工程设计中的应用
  2. 【项目管理】如何确定项目预算?
  3. 在做微信分享发送红包时思路
  4. 为什么eolinker发送老是等待_eoLinker-AMS 开源版 常见问题
  5. c语言程序小灯从右向左闪烁,单片机控制LED灯点亮(C语言).PPT
  6. 基于java的自动排课系统
  7. 博客项目--隐藏域的使用(暂存目标数据的id信息)
  8. 【ASM】Oracle ASM + 11gR2 + RHEL6.5 安装
  9. protobuf前后端解析_前端后台以及游戏中使用google-protobuf详解
  10. 屏幕录像工具哪个好?这3款录屏工具就很不错!