Прототип функции 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
Комментарии