C 庫函數(shù) - longjmp()
描述
C 庫函數(shù) void longjmp(jmp_buf environment, int value) 恢復(fù)最近一次調(diào)用 setjmp() 宏時保存的環(huán)境,jmp_buf 參數(shù)的設(shè)置是由之前調(diào)用 setjmp() 生成的。
聲明
下面是 longjmp() 函數(shù)的聲明。
void longjmp(jmp_buf environment, int value)
參數(shù)
- environment -- 這是一個類型為 jmp_buf 的對象,包含了調(diào)用 setjmp 時存儲的環(huán)境信息。
- value -- 這是 setjmp 表達式要判斷的值。
返回值
該函數(shù)不返回任何值。
實例
下面的實例演示了 longjmp() 函數(shù)的用法。
#include <stdio.h> #include <stdlib.h> #include <setjmp.h> int main() { int val; jmp_buf env_buffer; /* 保存 longjmp 的調(diào)用環(huán)境 */ val = setjmp( env_buffer ); if( val != 0 ) { printf("從 longjmp() 返回值 = %s\n", val); exit(0); } printf("跳轉(zhuǎn)函數(shù)調(diào)用\n"); jmpfunction( env_buffer ); return(0); } void jmpfunction(jmp_buf env_buf) { longjmp(env_buf, "w3cschool.cn"); }
讓我們編譯并運行上面的程序,這將產(chǎn)生以下結(jié)果:
跳轉(zhuǎn)函數(shù)調(diào)用 從 longjmp() 返回值 = w3cschool.cn
更多建議: