我在看书学习的时候发现这么一句话:“在你开发商用软件的任何一个程序时,都不要使用Debug进行编译调试,一定要用Release进行工作,否则后患无穷。”《编程高手箴言》里边的原话。我不是高手,写程序也一直用Debug调试,只知道软件发布的时候要编译成release版本来简化大小和优化速度,至于后患无穷根本没有什么感知,这后患体现在什么地方?望高手不吝赐教。

解决方案 »

  1.   

    “不要使用Debug进行编译调试,一定要用Release进行工作”
    前者说的是调试,后者又变成“工作”了,
    有点怪异的说 
    感觉是不是debug测试通过以后,在release下一定要把所有问题都验证一遍?
    因为的确很多情况下会造成debug和release出现不同效果的问题
      

  2.   

    这句话应该是告诉我们,要经常用Release版本运行程序,不要到了全部开发完成才切换Release编译,因为两者编译后,运行的结束不尽相同。意思是告诫我们要时刻提醒自己,最终发布的是Release版本。
      

  3.   

    继续看书发现了一个模糊答案:Debug模式下编译环境添加了很多堆栈检查和变量初始化的功能代码,在release版本下是没有的,书中有一个例子,不过是在汇编层次下的堆栈,好长,我也没看懂。
      

  4.   

    4楼是不错的理解方式
    作者是因为顾忌debug版本的检查会隐藏一些问题
    但是另一方面(我以为是多数情况下) debug版本的检查同样能让很多问题更早暴露出来 release很多时候碰到可能出错的问题 会找一个变通的办法(却未必是你想要的逻辑)凑合着让你继续过 该书我以前在书店看过一部分 不乏偏激的地方 需要自己斟酌
      

  5.   

    应该是“不要使用Debug进行编译调试,一定要用Release进行工作”
      

  6.   

    个人认为:Debug和release是不同的编译环境,不能作为产品的依靠,依靠的应该是,自己良好的编程习惯。