C/setjmp.h/setjmp

Материал из C\C++ эксперт
Перейти к: навигация, поиск

setjmp: saves the contents of the system stack in envbuf for later use by longjmp()

<source lang="cpp">

//Header file: #include <setjmp.h> //Declaration: int setjmp(jmp_buf envbuf); //Return: returns zero upon invocation.

 #include <setjmp.h>
 #include <stdio.h>
 jmp_buf ebuf;
 void f2(void);
 int main(void)
 {
   int i;
   printf("1 ");
   i = setjmp(ebuf);
   if(i == 0) {
     f2();
     printf("This will not be printed.");
   }
   printf("%d", i);
   return 0;
 }
 void f2(void)
 {
   printf("2 ");
   longjmp(ebuf, 3);
 }


      </source>