void longjmp(jmp
优质
小牛编辑
127浏览
2023-12-01
描述 (Description)
C库函数void longjmp(jmp_buf environment, int value)在相应的程序调用中使用相应的jmp_buf参数恢复最近调用setjmp()宏所保存的环境。
声明 (Declaration)
以下是longjmp()函数的声明。
void longjmp(jmp_buf environment, int value)
参数 (Parameters)
environment - 这是jmp_buf类型的对象,包含在setjmp的调用点恢复环境的信息。
value - 这是setjmp表达式计算的值。
返回值 (Return Value)
此函数不返回任何值。
例子 (Example)
以下示例显示了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\n", val);
exit(0);
}
printf("Jump function call\n");
jmpfunction( env_buffer );
return(0);
}
void jmpfunction(jmp_buf env_buf) {
longjmp(env_buf, "iowiki.com");
}
让我们编译并运行上面的程序,它将产生以下结果 -
Jump function call
Returned from a longjmp() with value = iowiki.com