我正在审查一个C++ MFC项目。在某些文件的开头有以下行:
#pragma optimize("", off)
我知道这将关闭所有以下功能的优化。但是这样做的动机通常是什么?
Best Answer-推荐答案
我看过正确的生产代码,但是它太复杂了,以至于使优化器产生错误的输出。这可能是关闭优化的原因。
但是,我认为代码更容易出错,具有未定义的行为。优化器暴露了这一点,并导致错误的运行时行为或崩溃。没有优化,代码就会“起作用”。与其找到并消除潜在的问题,不如通过禁用优化并将其留在那儿来“解决”它。
当然,这与脆弱和解决方法有关。新的硬件,新的OS补丁,新的编译器补丁,其中的任何一个都可能破坏这样的“修复”。
即使存在第一个原因的实用程序,也应进行大量记录。
关于c++ - 为什么#pragma优化(“”,关闭),我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/29033438/
|