#include<setjmp.h>
#include<stdlib.h>
#include<stdio.h>
jmp_buf jmpbuffer;
#define try int jmp;jmp=setjmp(jmpbuffer);if(0==jmp)
#define throw(a) longjmp(jmpbuffer,a);
#define catch(a) a=jmp;if(0!=jmp)
void g()
{
printf("in g()\n");
throw(32);
}
void f()
{
printf("in f()\n");
g();
printf("leave f()\n");
}
int main()
{
printf("begin\n");
try
{
f();
}
catch(int a)
{
printf("in catch: %d\n", a);
}
return 0;
}