2017-04-08 75 views
1

我對這些比較操作是如何在引擎蓋下工作有點好奇,因爲我試圖儘可能優化我的代碼並開發出好的編程習慣。C - '大於'vs'大於或等於'的表現

例如,考慮聲明

0 > 1 

它應該只是檢查,如果0大於1

但後來想想聲明

0 >= 1 

是否首先檢查0大於1,那麼它們是否相等?

我這麼問是因爲,如果是這樣的話,那不是也意味着

a > b 

要求操作量的一半相比

a >= b 

+1

在大多數現代架構中,所有這些不同的比較操作映射到單個指令。主要集中在編寫可讀,可維護,健壯和正確的代碼 - 微優化稍後(如果有的話)。 –

+1

引擎蓋101:1)檢查生成彙編2)措施 –

+0

感謝您的意見。我會確保將更多的信任放到我的編譯器中。 :) – Lobs001

回答

4

正如別人提到的,和大多數現代處理器已經有處理你提到的更復雜的外觀案例的說明。

我不確定這裏有多遠的'現代',但我會說,如果你擔心表現,這是一個你不應該爲速度而優化的地方;爲了清楚起見。優化編譯器通常會知道比您更快的處理操作的方式。

+0

謝謝!那麼我會把更多的信任放到我的編譯器中。 :) – Lobs001