0

我有一个在记事本中打开的vproj文件,

这里参数的作用是什么,和optimize之间有什么区别?TrueFalse

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

<DebugType>pdbonly</DebugType>

<DefineDebug>false</DefineDebug>

<DefineTrace>true</DefineTrace>

<Optimize>true</Optimize> <!-- Here -->
4

1 回答 1

1

如果没有优化,编译器会产生非常愚蠢的代码——每个命令都以非常直接的方式编译,因此它可以完成预期的事情。Debug 版本默认禁用优化,因为如果没有优化,生成的可执行文件会直接匹配源代码。

保存在寄存器中的变量

打开优化后,编译器会应用许多不同的技术来使代码运行得更快,同时仍然执行相同的操作。在 Visual C++ 中优化和未优化构建之间最明显的区别是变量值在优化构建中尽可能长时间地保存在寄存器中,而没有优化它们总是存储在内存中。这不仅会影响代码速度,还会影响调试。由于这种优化,调试器在您单步执行代码时无法可靠地获取变量值。

这是我的来源 - “优化代码”选项在 Visual Studio 中的真正作用是什么?

于 2014-09-19T12:34:45.970 回答