2017-04-08 53 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