我正在尝试将 jmp_buf 定义为指针并在嵌套的 longjmp(s) 中使用它。如下所示:
...
jmp_buf *bfj;
...
然后写 if else:
if( setjmp(*bfj) == 0){
DS[SP-2].int_val=(int)bfj;;
//to store the bfj
}else {}
在其他地方使用存储的 bfj 到 longjmp
bfj = (jmp_buf *)DS[TOP].int_val;
longjmp(*bfj,1);
DS[TOP].int_val 是我存储它的位置。看起来很清楚,我想使用存储的 bfj 进行嵌套 goto 和返回。但是当我尝试调试时,我得到“未处理的异常”。我从一开始就明白了:
if( setjmp(*bfj) == 0)
如果有人能告诉我解决方案,我会很高兴。