我有一个“MyFunction”,我一直在纠结是否应该在上面使用 goto 以及在类似(希望很少见)的情况下。所以我正在努力为这种情况建立一个硬性的习惯。做或不做。
int MyFunction()
{ if (likely_condition)
{
condition_met:
// ...
return result;
}
else /*unlikely failure*/
{ // meet condition
goto condition_met;
}
}
我打算将失败的条件跳转指令的好处用于可能的情况。但是,如果没有这样的事情,我看不出编译器如何知道要简化哪个案例概率。
- 它工作正常吗?
- 这些好处值得混淆吗?
- 是否有更好的(不那么冗长、更结构化、更具表现力)的方法来实现这种优化?