#Standard C89, no extensions
Standard C89, no extensions
#include <setjmp.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
jmp_buf b;
int i = 0, j;
if (argc > 1) i = atoi(argv[1]);
if (i<=0) i = 10;
j = setjmp(b);
if (j<i) {
printf("%d\n", j);
longjmp(b, j+1);
}
return EXIT_SUCCESS;
}
Compiles cleanly with gcc -std=c89 -g -Wall -Wextra -pedantic
.