VS2008下Debug和Release的区别

区别1:
请看下面一段程序:

void test();

int _tmain(int argc, _TCHAR* argv[])

{

test();

return 0;

}


void test()

{

double dTest;

if (dTest)

{

cout<<"Test success"<<endl;

}

else

{

cout<<"test fail"<<endl;

}

}

如果该程序在debug下运行,编译是不会出错,运行时会出现如下错误,说dTest没有被初始化,有图有真相:

VS2008下Debug和Release的区别

而在release下不会出现错误,运行通过。至于为什么,如下:

Runtime Library:链接哪种运行时刻函数库通常只对程序的性能产生影响。调试版本的 Runtime Library 包含了调试信息,并采用了一些保护机制以帮助发现错误,因此性能不如发布版本。编译器提供的 Runtime Library 通常很稳定,不会造成 Release 版错误;倒是由于 Debug 的 Runtime Library 加强了对错误的检测,如堆内存分配,有时会出现 Debug 有错但 Release 正常的现象。应当指出的是,如果 Debug 有错,即使 Release 正常,程序肯定是有 Bug 的,只不过可能是 Release 版的某次运行没有表现出来而已。

区别2:

 

Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。


如果想知道详细的信息,网上搜一下,有很多,包括两个版本下的区别,包括编译选项的、什么情况下会出错等等。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值