写了一个程序,在Debug模式下运行一切正常,但在Release下却偶尔出错。调试了一整天,结果没有发现逻辑上有什么错误,但就是会出现内存错误。
后来上网搜索一下,发现可能是代码优化导致行为失常。修改项目配置,把所有的优化都去掉,编译之后运行良好。
哈哈,后来想想,发现出现这个错误的另一个不起眼的原因是因为项目中有DLL,而DLL的代码是在另一个项目中引用并调用的,因此,貌似对于单个DLL项目编译时会有很多冗余或没有使用到的符号,这样在所谓的优化模式下,就会把这些符号移除,而这样就导致真正调用时出现错误。
聊以此文记录自己的傻B行为!