如何在 main 函数之外的 C++ 中为 goto 定义标签?

How to define labels for goto in C++ outside main function?

是否可以在C/C++中使用goto语句跳转到main函数之外的标签?类似于:

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 和 label 语句,有什么我没有理解的吗?是的,我知道 goto 和 label 语句通常不适合编程,但它们确实有助于摆脱深层嵌套循环和类似的东西。

不,但如果您真的、真的、真的需要它——而且您几乎肯定不需要——setjmp 功能可能适合您。不能执行不存在的全局语句,但是可以直接跳转到函数中间等等。