是否可以从未命名的范围跳转?
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:将单词命名空间更改为范围
是的,您需要使用goto
跳出范围。
break
只能用于跳出循环或切换。
但是你可以通过使用虚拟循环来使用(可疑的)技巧:
void MyFunc() {
do {
... // Code
if (!head_size) {
break;
}
... // Code
if (!tail_size) {
break;
}
... // Code
} while (false);
{
... // Error handling code
}
}