2011-06-05 107 views
1

C编程,我们可以启用/禁用循环优化使用#pragma预处理器指令。循环优化

在哪种场景下,循环优化应该关闭?

+6

不,在C编程中没有对优化的显式控制,'#pragma'具有实现定义的行为。 ybe你的意思是MSVC或其他东西,如果是这样,你应该这样标记你的问题...... – 2011-06-05 11:53:34

回答

2

当您为debug进行编译(以便调试器中的源代码行与正在执行的代码完全匹配)时,默认情况下优化处于关闭状态。

你只使用编译在非常特殊的情况,比如:

+2

而不是优化错误,这可能是你的代码调用UB的情况下,如果代码“似乎工作”与优化关闭。 – 2011-06-05 11:55:48

+1

我同意@R。每个C程序员都应该阅读[每个C程序员应该知道的关于未定义行为的全部3部分](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html)来自LLVM博客。 – spacehunt 2011-06-05 17:44:41

+0

@R:这是一个很好的阅读。我会在我的答案中添加一个链接。 – 2011-06-06 00:22:44