在C中,当编译到x86机器时,我通常会用逻辑表达式替换分支,当速度是最重要的方面时,即使条件很复杂,例如,而不是
char isSomething() {
if (complexExpression01) {
if (complexExpression02) {
if(!complexExpression03) {
return 1;
}
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我会写:
char isSomething() {
return complexExpression01 &&
complexExpression02 &&
!complexExpression03 ;
}
Run Code Online (Sandbox Code Playgroud)
现在显然,这可能更难维护,代码可读性更低,但实际上可能更快.
在使用托管代码(例如C#)时,是否有任何理由采取相同的方式?托管代码中的"跳转"是否昂贵,因为它们处于非托管代码中(至少在x86上)?
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |