2015-11-12 32 views
-2

是否可以在C/C++中使用goto语句跳转到主函数以外的标签?就像:如何在主函数之外定义C++中的goto标签?

lab0: //First label 
std::cout<<"Hello, "; 
goto lab1; 

lab1: //Second label 
std::cout<<"World!"; 
goto lab2; 

int main() 
{ 
    goto lab0; 
    lab2: //Third label 
    std::cout<<std::endl; 
    return 0; 
} 

有没有什么我没有得到有关goto和标签声明?是的,我知道goto和label语句在编程方面通常是不好的形式,但它们对于退出深度嵌套循环和类似的东西非常有帮助。

+0

*如何在C++中定义goto标签* - 什么? *但它们对于退出深度嵌套的循环和类似的东西非常有帮助。*这不是你的意图。你正在将代码转换成意大利面。 – PaulMcKenzie

+1

在全局空间中不能有可执行语句。 – NathanOliver

+0

没有。该标签是本地的功能。 –

回答

0

不,但如果你真的真的需要它 - 而且你几乎肯定不会 - setjmp函数可能适用于你。不能执行不存在的全局语句,但可以直接跳转到函数等的中间。

相关问题