【C++】Debug模式和Release模式的区别

VS中的程序有两种编译模式:Debug模式和Release模式

Debug通常称为调试版本,通过一系列编译选项的配合,编译结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。

Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试,所以不保存调试信息,同时它往往进行了各种优化,以期达到代码最小和速度最优,为用户的使用提供便利。

Debug程序通常要比Releas程序要慢,尤其是处理视频方面Release要比Debug快很多,在Release模式对程序进行调试的时候经常遇到变量虽然初始化了,但是在查看其值的时候却发现是一个随机值而不是初始化值,有时候在对变量进行监视的时候,会出现找不到变量的情况,原因大致如下

Debug跟Release在初始化时所做的操作是不同的,debug是将每个字节都赋值成0xcc,而release的赋值接近于随机,如果你的程序中的某个变量没有初始化就被引用,就很有可能出现异常:比如控制变量异常将导致程序流程不一致,用做数组下标将会使得程序崩溃,所以在声明变量后马上对其初始化一个默认的值是最简单有效的方法,否则项目大了找都没有地方找,代码存在程序在debug模式下可能会忽略而不被察觉,debug下数组越界也大多不会有错,在release中就暴露出来了

只有debug模式下才能设置断点,单步执行,使用TRACE/ASSERT等调试输出语句,Release不包含任何调试信息,所以体积小,运行速度快


原文地址:https://www.cnblogs.com/yinbiao/p/11696854.html