C 教程
C 標(biāo)準(zhǔn)庫 - <setjmp.h>
C 庫宏 int setjmp(jmp_buf environment) :創(chuàng)建本地的jmp_buf緩沖區(qū)并且初始化,用于將來跳轉(zhuǎn)回此處。這個(gè)子程序保存程序的調(diào)用環(huán)境于env參數(shù)所指的緩沖區(qū),env將被longjmp使用。如果是從setjmp直接調(diào)用返回,setjmp返回值為0。如果是從longjmp恢復(fù)的程序調(diào)用環(huán)境返回,setjmp返回非零值。
下面是 setjmp() 宏的聲明。
int setjmp(jmp_buf environment)
這個(gè)宏可能不只返回一次。第一次,在直接調(diào)用它時(shí),它總是返回零。當(dāng)調(diào)用 longjmp 時(shí)帶有設(shè)置的環(huán)境信息,這個(gè)宏會(huì)再次返回,此時(shí)它返回的值會(huì)傳給 longjmp 作為第二個(gè)參數(shù)。
下面的實(shí)例演示了 setjmp() 宏的用法。
讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
second main其他擴(kuò)展