debug版本与release版本

debug为调试版本,其中包括了出错时能够定位源代码的行,如果源文件已经改变,定位出来会有偏移,而且,在这个版本中编译器不会进行代码优化,并且在程序中能用宏定义_DEBUG来确定当前的版本。另一个为正式版本,程序出错只是进行简单的错误处理,编译器会优化代码,以提高性能。release代码更小,执行更快,编译更严格,更慢,当然就没有了调试信息。debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc, 而release的赋值近似于随机。


1.debug运行成功release版本运行失败的原因(可通过printf函数定位错误的位置)

(1)变量没被初始化就被引用

(2)数组越界

(3)项目的属性配置,例如配置属性->C/C++->预处理器定义,添加或缺少宏定义

(4)命令行参数长度太长




2.debug运行失败release版本运行成功的原因

(1)Runtime Library

(2)Assert断言指令,是属于调试代码,只能在debug模式下用,错误可能就是在这里。但是release版会把ASSERT宏优化掉,所以assert里的错误不会被发现。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值