c – 比任何其他数字更快地比较零吗?

前端之家收集整理的这篇文章主要介绍了c – 比任何其他数字更快地比较零吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
if(!test)

比…快

if(test==-1)

我可以生产组装,但是生产了太多的组件,我无法找到我追求的细节.我希望有人知道答案.我猜它们是相同的,除非大多数cpu架构都有某种“比较为零”的捷径.

谢谢你的帮助.

解决方法

通常,是的.在典型的处理器中测试零或测试符号(负/正)是简单的条件代码检查.这意味着可以重新排序指令以省略测试指令.在伪装配中,请考虑以下因素:
Loop:
  LOADCC r1,test // load test into register 1,and set condition codes
  BCZS   Loop     // If zero was set,go to Loop

现在考虑对1进行测试:

Loop:
  LOAD   r1,test // load test into register 1
  SUBT   r1,1    // Subtract Test instruction,with destination suppressed
  BCNE   Loop     // If not equal to 1,go to Loop

现在通常的预优化免责声明:你的程序太慢了吗?不要优化,分析它.

猜你在找的C&C++相关文章