转到语句中的堆栈跟踪

时间:2014-03-22 12:55:12

标签: c++ stack-trace goto

假设我在递归调用中使用goto语句,该调用重定向到我的main函数,堆栈内存中的信息会发生什么? 假设它是这样的,

void recurse(int n){
    if(n==0) goto p;
    ....
}
int main(){
    recurse(100);
    p:;
}
编辑:正如答案中所指出的,goto语句不能完全在函数范围之外使用,因此怀疑的主要原因是错误的。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

你不能,因为goto只能转到同一功能的标签。

  

C ++ 11 6.6.4 goto语句

     

goto语句无条件地将控制权转移到标识符标记的语句。标识符应为位于当前函数中的标签(6.1)。