C 庫函數 - longjmp()

C 標準庫 - <setjmp.h> C 標準庫 - <setjmp.h>

描述

C 庫函數 void longjmp(jmp_buf environment, int value) 恢復最近一次調用 setjmp() 宏時保存的環境,jmp_buf 參數的設置是由之前調用 setjmp() 生成的。

聲明

下面是 longjmp() 函數的聲明。

void longjmp(jmp_buf environment, int value)

參數

  • environment -- 這是一個類型為 jmp_buf 的對象,包含了調用 setjmp 時存儲的環境信息。
  • value -- 這是 setjmp 表達式要判斷的值。

返回值

該函數不返回任何值。

實例

下面的實例演示了 longjmp() 函數的用法。

#include <stdio.h>
#include <stdlib.h>
#include <setjmp.h>

int main()
{
   int val;
   jmp_buf env_buffer;

   /* 保存 longjmp 的調用環境 */
   val = setjmp( env_buffer );
   if( val != 0 ) 
   {
      printf("從 longjmp() 返回值 = %s\n", val);
      exit(0);
   }
   printf("跳轉函數調用\n");
   jmpfunction( env_buffer );
   
   return(0);
}

void jmpfunction(jmp_buf env_buf)
{
   longjmp(env_buf, "w3cschool.cn");
}

讓我們編譯并運行上面的程序,這將產生以下結果:

跳轉函數調用
從 longjmp() 返回值 = w3cschool.cn

C 標準庫 - <setjmp.h> C 標準庫 - <setjmp.h>