Russian Belarusian English German Japanese Ukrainian

setjmp.h – заголовочный файл стандартной библиотеки языка Си, объявляющий макросы и тип данных для нелокальных переходов. В Си существует оператор goto, позволяющий переходить в любое место в пределах функции (с некоторыми оговорками), однако переход между функциями с его помощью невозможен.

Библиотека объявляет тип данных jmp_buf, который является массивом и который может использоваться для сохранения и восстановления контекста выполнения программы. Тип не включает в себя информацию о контексте вычислений с плавающей запятой, статусе открытых файлов или иных компонентов.

Средства, предоставляемые данным заголовочным файлом, позволяют программисту выполнять нелокальные переходы.

#include <setjmp.h>
int setjmp(jmp_buf env);
void longjmp(jmp_buf env, int val);

Стандарт объявляет две функции: setjmp() (может быть макросом) и longjmp(), для сохранения и восстановления контекста, соответственно. Функция setjmp() сохраняет контекст в переменной env и возвращает 0, если это был прямой вызов, или ненулевое значение, если это был возврат из longjmp().

Стандарт запрещает сохранять результат выполнения функции setjmp, накладывая ограничения на место вызова.

В заголовочном файле csetjmp определены, функции (макросы) и тип данных для работы с ними:

Тип Значение
longjmp Функция longjmp возвращает управление программой на самый последний вызов функции setjmp в одном процессе.
setjmp Сохранение значений переменных окружения, для дальнейшего, возможного, их восстановления.
jmp_buf Тип данных jmp_buf для хранения информации и дальнейшего восстановления.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Поиск по сайту