首页 > 其他分享 >VS2015-预编译头和安全开发生命周期检查

VS2015-预编译头和安全开发生命周期检查

时间:2023-02-13 14:11:25浏览次数:47  
标签:文件 生命周期 头文件 检查 VS2015 编译 编译器

新建控制台项目时,会显示预编译头选项和安全开发生命周期检查选项,默认勾选。

什么是预编译头?

预编译头分为预编译和头,一个动词一个名词,头文件想必不用多说,预编译顾名思义也能理解,就是提前编译文件。

有的时候,头文件库会包含大量的代码文件,如果每次用户生成文件的时候都要重新编译所有头文件,所耗费的工程时间是难以估算的。

为了减少编译时间,一些编译器允许将头文件编译成更快的编译器处理形式。这个中间表单被称为预编译头文件,通常保存在一个名为.pch扩展名或类似文件的文件中,例如GNU编译器集合下的.gch。

什么是安全开发生命周期检查?

如果勾选上这一项,那么他将严格按照SDL的规则编译代码,会有一些以前常用的函数无法通过编译,比如在VS2010中的scanf是warning那么在VS2012中就是error了。

也就是在编译的时候,当SDL检查启用时,编译器会严格检测缓冲区的溢出,并且会在delete某个指针时,自动为这个指针定义一个非有效的值,防止在delete以后仍用到这个指针时出错。还有就是会在你定义一个对象时,自动为这个对象赋值零。

从这些功能来看,有些功能还是不错的,不但方便了程序员使用也增强了程序的健壮性,但是对老版本程序的兼容就会出现问题,以前程序中编译通过的内容也许在VS2012中就没有办法通过。

标签:文件,生命周期,头文件,检查,VS2015,编译,编译器
From: https://www.cnblogs.com/cnleika/p/17116143.html

相关文章

  • 过滤器细节 执行流程 生命周期
    过滤器细节web.xml配置<filter><filter-name>demo1</filter-name><filter-class>cn.nan.web.filter.FilterDemo1</filter-class></filter><filter-mapping><......
  • 01AI编译器后端优化介绍
    1、AI编译器架构 准备好用Caffe、Tensorflow等训练好的神经网络模型。神经网络模型转换成GraphIR,然后经过GraphOptimizer的一系列Pass优化,列如:图算融合、数据排布......
  • Golang:交叉编译到Linux、macOS、windows并运行
    Golang可以直接编译成不同平台的可执行文件,并且直接运行,很方便第三方使用者部署运行项目结构$tree.├──Makefile└──src└──hello.go项目很简单,一个H......
  • react hook学习7-useeffect模拟生命周期
       ......
  • 交叉编译 configure
    。。$tarzxfreadline-5.2.tar.gz$cdreadline-5.2/$./configure--host=arm-linux--prefix=$(pwd)/_install$make$makeinstall中./configure--host=arm......
  • maven的生命周期和maven概念模型图
    maven的生命周期  比如运行mvnclean,这里的clean就是清理生命周期的一个阶段。清理生命周期一共包含了三个阶段:pre-clean(预清理):执行一些需要在clean阶段之......
  • orbslam3(1)安装和编译
      https://github.com/UZ-SLAMLab/ORB_SLAM30环境ubuntu20opencv3.4.9ros roscvbriage单独根据opencv重新编译(vins-fusion安装编译的) 1安装下载gitcl......
  • 编译驱动产生 xxx.mod.c 和 Module.symvers 文件分析
    xxx.mod.c是编译驱动的时候自动产生的,假设我们编译module.ko,当编译时就会产生一个module.mod.c文件xxx.mod.c文件源码#include<linux/module.h>#include<linux/verma......
  • LAMP环境搭建——最详细的手工编译
    环境:阿里云服务器ECS,AlibabaCloudLinux3.2104LTS64位,2核(vCPU)2GiBLAMP是搭建Web应用时最常用的环境,LAMP分别表示Linux、Apache、MySQL以及PHP,即在Linux......
  • ubuntu搭建编译OpenWRT
    搭建OpenWRT开发环境打开终端,输入执行sudoapt-getupdate(检查软件包的更新):sudoapt-getinstallgccg++binutilspatchbzip2flexbisonmakeautoconfgettextt......