longjmp

来自cppreference.com
< c‎ | program

在头文件 <setjmp.h> 中定义
void longjmp( jmp_buf env, int status );
加载的执行上下文env保存以前调用setjmp的。这个函数不返回。控制权转移到宏观setjmp成立env的调用点。这setjmp然后返回值,通过为status.
原文:
Loads the execution context env saved by a previous call to setjmp. This function does not return. Control is transferred to the call site of the macro setjmp that set up env. That setjmp then returns the value, passed as the status.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
如果是调用该函数setjmp已退出,其行为是不确定的(换句话说,只允许调用堆栈向上跳跃)
原文:
If the function that called setjmp has exited, the behavior is undefined (in other words, only long jumps up the call stack are allowed)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
没有自动对象的析构函数被调用。如果更换的longjmpthrowsetjmpcatch将执行一个不平凡的任何自动对象的析构函数,这样longjmp的行为是未定义的.
原文:
No destructors for automatic objects are called. If replacing of longjmp with throw and setjmp with catch would execute a non-trivial destructor for any automatic object, the behavior of such longjmp is undefined.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 参数

env -
变量setjmp保存的程序执行状态
原文:
variable referring to the execution state of the program saved by setjmp
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
status -
返回的值setjmp。如果它是等于01代替
原文:
the value to return from setjmp. If it is equal to 0, 1 is used instead
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 返回值

(无)
原文:
(none)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 为例

[编辑] 另请参阅

保存上下文
(函数宏) [edit]
C++ documentation for longjmp