是否可以从未命名的范围跳转?
void MyFunc() {
{
... // Code
if (!head_size) {
goto _common_error; // <- break and continue don't work here
}
... // Code
if (!tail_size) {
goto _common_error; // second time
}
... // Code
}
_common_error:
{
... // Code
}
}
我的问题不是是否可以重新设计它,而是我不知道c ++中是否有一个窍门。
除了goto之外,c ++中是否有一种机制可以跳出未命名的范围?中断并继续操作不适用于范围。
Update1:将单词命名空间更改为作用域
答案 0 :(得分:2)
是的,您需要使用goto
跳出示波器。
break
仅可用于跳出循环或切换。
但是您可以通过使用虚拟循环来使用(可疑)技巧:
void MyFunc() {
do {
... // Code
if (!head_size) {
break;
}
... // Code
if (!tail_size) {
break;
}
... // Code
} while (false);
{
... // Error handling code
}
}