2011-06-05 183 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