Let us apply the idea discussed so far to write a factorial computation program. Click here to download a copy of this program.
#include <stdio.h> #include <setjmp.h> jmp_buf JumpBuffer; int result; void main(int argc, char *argv[]) { int n; n = (int) atoi(argv[1]); if (setjmp(JumpBuffer) == 0) factorial(n); else printf("fact(%d) = %d\n", n, result); exit(0); } void factorial(int n) { fact(1, 1, n); } void fact(int Result, int Count, int n) { if (Count <= n) fact(Result*Count, Count+1, n); else { result = Result; longjmp(JumpBuffer, 1); } }