可能的重复:
if(flag==0) 和 if(0==flag) 哪个执行得更快?
我通常将平等条件写为:
if(0==x)
正如很多人所做的那样,而不是
if(x==0)
这样当我不小心输入 = 而不是 == 时,编译器会告诉我。
有人告诉我,一些编译器将其实现为两个寄存器加载,而不是使用不等于零操作的一个,因此效率较低。
有人知道这是一个合理的评论吗?
有人告诉我,一些编译器将其实现为两个寄存器加载,而不是使用不等于零操作的一个
没有技术原因需要这样做。所以不,任何有价值的编译器都会not做出这种无关紧要的区别:因为这两个语句严格等效,并且编译器可以简单地识别这一点,所以它将以相同的方式对待它们。
请注意,这是only对于具有良好行为的内置类型和用户定义类型为 trueoperator ==
. 理论上用户可以提供不对称的operator ==
未给出此等效项的重载。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)