Я пытаюсь определить 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 - это место, где я его сохранил. как это может показаться ясным, я хочу делать вложенные gotos и возвращать, используя сохраненный bfj. но хорошо, когда я пытаюсь отладить, я получаю «необработанное исключение». Я получаю это с самого начала:
if( setjmp(*bfj) == 0)
Буду рад, если кто-нибудь подскажет решение.
longjmp
(и что вы явно не понимаете, что он делает или как работает), предполагает, что вы делаете что-то очень неправильно. - person greyfade   schedule 22.06.2010