位置:首页 > 高级语言 > C语言标准库 > longjmp() - C函数

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, "yiibaisgitbook.net");
}

让我们编译和运行上面的程序,这将产生以下结果:

Jump function call
Returned from a longjmp() with value = yiibaisgitbook.net