I\'m working on a Scheme interpreter written in C. Currently it uses the C runtime stack as its own stack, which is presenting a minor problem with implementing continuation
The traditional way is to use setjmp and longjmp, though there are caveats.
setjmp
longjmp
Here's a reasonably good explanation