Прототип функции longjmp:
void longjmp(jmp_buf environment, int val);
Заголовочный файл
| Название | Язык |
|---|---|
| setjmp.h | С |
| csetjmp | С++ |
Описание
Функция longjmp возвращает управление программой на самый последний вызов функции setjmp в одном процессе. Информация, необходимая для восстановления значений окружающих переменных обеспечивается параметром environment. Величины восстанавливаемых переменных сохраняются в объекте типа jmp_buf, когда выполняется вызов функции setjmp. Функция longjmp никогда не возвращается к точке, где она была вызвана. Вместо этого, функция передает управление в точку, где функция setjmp была использована, для заполнения параметров окружения.
Параметры:
- environment
Объект типаjmp_bufсодержащий информацию по восстановлению значений окружения, после вызова функцииsetjmp. - val
Значение, котороеsetjmpвычисляет.
Возвращаемое значение
Функция longjmp не имеет возвращаемого значения.
Пример: исходный код программы
// пример использования функции longjmp
#include <iostream> // для оператора cout
#include <csetjmp> // для функции longjmp
int main ()
{
jmp_buf env; // хранилище информации для восстановления
int val = setjmp(env);
std::cout << "Значение " << val << std::endl;
if (!val) longjmp(env, 1); // возврат к функции setjmp
return 0;
}
Пример работы программы
CppStudio.com
Значение 0
Значение 1
Значение 1
Комментарии