我正在尝试调用 longjmp。Setjmp 有效,但 longjmp 给了我一个类型错误。
void thread_start_threading(void)
{
setjmp(env);
dispatch();
current_thread->function(current_thread->arg);
}
然后后来:
void thread_yield(void)
{
longjmp(env, 9);
return;
}
它给我的错误是warning: passing argument 1 of ‘longjmp’ makes pointer from integer without a cast
我真正想要的是保存寄存器的状态,然后再恢复它们。我认为我不需要使用论点来做到这一点。但我可能是错的。我不理解 setjmp。
编辑:更多代码