C语言是没有办法在中断函数结束后指定跳转其他地方的,这个直接操作汇编可能可以实现,把中断前压栈的信息取出来却不赋值给PC指针,而是把switch的位置付给PC指针。
但正常来说这种需求是很罕见的,可操作性也不高,因为单片机运行速度很快,所有完全可以等一个周期的代码运行完了再操作,在者你在一个周期没有运行完的情况下,强行跳转到新的一个周期很难保证这个过程中会不会出现什么野指针之类的麻烦。如果一个周期很长,你急需在按键之后立即中断他,要么采用实时操作系统,直接中断这个任务;要么在长等待的语句里面判断是否有新的按键时间,再使用goto语句/break语句跳转。