Функция longjmp () в C ++ восстанавливает среду, ранее сохраненную путем вызова setjmp ().
Функция longjmp () определена в заголовочном файле.
longjmp () прототип
void longjmp (jmp_buf env, int status);
Загружаемая среда сохраняется в аргументе env, который сохраняется при вызове функции setjmp ().
longjmp () Параметры
- env: объект типа jmp_buf, в котором хранится среда для загрузки.
- status: переменная, возвращаемая из setjmp. Если он равен 0, вместо него используется 1.
longjmp () Возвращаемое значение
- Никто
Пример: как работает функция longjmp ()?
#include #include using namespace std; int main() ( jmp_buf env; int val; val = setjmp(env); if (val==0) ( cout << "setjmp returned " << val << endl; longjmp(env,val); ) else ( cout << "setjmp returned " << val << endl; cout << "Program terminating" << endl; ) return 0; )
Когда вы запустите программу, вывод будет:
setjmp вернул 0 setjmp вернулся 1 Программа завершается