C/setjmp.h/setjmp

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

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

    
//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);
  }