|
|
1
50
首先,整数比较非常便宜。it is 的常用口语形式 分岔 这可能很昂贵(由于分支预测失误的风险)。 我使用gcc 4.7.2在Sandy Bridge盒子上对你的函数进行了基准测试,每次调用大约需要1.2ns。 以下速度约快25%,每次呼叫约0.9ns:
上述机器代码完全无分支:
有两点值得指出:
|
|
|
2
6
第一部分(
还有正典
这可以说比上述更好,因为它不依赖于实现定义的行为,但有一个微妙的错误,即INT_MIN将返回0。 |
|
|
3
1
|
|
|
4
0
如果
因此,您可以按以下方式组合它们:
|
|
5
-2
|