Visual studio 为什么我不应该使用/optimize开关来编译我的C代码?

Visual studio 为什么我不应该使用/optimize开关来编译我的C代码?,visual-studio,compiler-construction,Visual Studio,Compiler Construction,在VisualStudio2008中,有一个选项“优化代码”,它可能对应于/Optimize选项。它永远不会启用,即使在“释放”模式下也不会启用 为什么我不希望此选项始终处于启用状态?对于发布版本,它是按默认值启用的(可能您更改了发布版本的设置?)。关闭它以使调试更容易。对于发布代码,请将其启用 代码优化在C#3中得到了很好的应用-它进行了许多巧妙的性能调整,在IL中对代码的更改要比您预期的多得多 某些模糊处理工具(以及其他一些IL工具,如ILMerge)有时会在启用优化时破坏程序集。您使用的I

在VisualStudio2008中,有一个选项“优化代码”,它可能对应于/Optimize选项。它永远不会启用,即使在“释放”模式下也不会启用


为什么我不希望此选项始终处于启用状态?

对于发布版本,它是按默认值启用的(可能您更改了发布版本的设置?)。关闭它以使调试更容易。对于发布代码,请将其启用

代码优化在C#3中得到了很好的应用-它进行了许多巧妙的性能调整,在IL中对代码的更改要比您预期的多得多

某些模糊处理工具(以及其他一些IL工具,如ILMerge)有时会在启用优化时破坏程序集。您使用的IL工具越多,就越有可能在优化方面遇到严重问题


正如@Brian Rasmussen已经说过的(+1)-您希望它在调试时关闭,在发布时打开。

为了明确这一点,优化会执行内联函数并消除一些变量。在调试优化的代码时,IDE不会像往常一样提供太多帮助,因为有些代码实际上已经不存在了。因此,对于调试,请禁用if(默认)


在C++优化语言中,有时(经常)有重要的副作用需要考虑。据我所知,C#的情况并非如此,或者几乎不是这样,因此从代码正确性的角度来看,优化与否可能无关紧要。

Hmm,一定是在不知不觉中关闭了它。请再次勾选:p