longjmp() - C函數
C庫函數void longjmp(jmp_buf environment, int value)到jmp_buf環境,恢復由最近一次調用對setjmp()宏在同一程序與correspondingjmp_buf參數調用保存的環境。
聲明
以下是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; /* save calling environment for longjmp */ val = setjmp( env_buffer ); if( val != 0 ) { printf("Returned from a longjmp() with value = %s
", val); exit(0); } printf("Jump function call
"); jmpfunction( env_buffer ); return(0); } void jmpfunction(jmp_buf env_buf) { longjmp(env_buf, "yiibaisyiibai.com"); }
讓我們編譯和運行上面的程序,這將產生以下結果:
Jump function call
Returned from a longjmp() with value = yiibaisyiibai.com