我想要做的是避免以下情况:
if(*ptr > 128) {
number = 5;
}
当没有明确的分支将走向何方时,此类代码的性能很差。我想出的是:
int arr[] = { number, 5 };
int cond = *ptr > 128;
number = arr[cond];
根据我的测试,当输入是随机的时,它的运行速度是执行条件的两倍多。我想知道是否有更聪明的方法可以做到这一点,也许使用按位运算符。
我想要做的是避免以下情况:
if(*ptr > 128) {
number = 5;
}
当没有明确的分支将走向何方时,此类代码的性能很差。我想出的是:
int arr[] = { number, 5 };
int cond = *ptr > 128;
number = arr[cond];
根据我的测试,当输入是随机的时,它的运行速度是执行条件的两倍多。我想知道是否有更聪明的方法可以做到这一点,也许使用按位运算符。