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

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

什么是预编译头?

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

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

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

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

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

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

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

posted @ 2023-02-13 14:02  对CSDN使用炎拳吧  阅读(48)  评论(0编辑  收藏  举报