c/c++ if分支的消除,提高代码的运行效率
一般的if语句
if( v < 10){
v + 48;
}
else{
v + 50;
}
改进之后的语句(没有分支了)
v + 55 - ( ( (v- 10) >> 15) & 7 );
解释
1、if语句可以改进为:v + ( v < 10 ? 48 : 50).
2、后面的三元运算符的原型就是 c ? x : y,此处替换成一个与此等价的表达式:y - ( c~ ? ( y - x ) : 0).
3、如果 c~用-1表示为真,0表示假的话,可以替换成
原创
2020-08-03 15:40:26 ·
899 阅读 ·
1 评论