C 庫函數– longjmp()
描述
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.cc"); }
讓我們編譯並運行上面的程序,這將產生以下結果:
跳转函数调用 从 longjmp() 返回值 = w3cschool.cc