11.08.2017, 13:56
TDW CJump
ОписаниеДобавляет возможность нелокальных переходов. В Pawn есть оператор goto, который позволяет перейти абсолютно в любое место в функции, однако с помощью данного оператора невозможен переход между функциями.Документация
setjmp - функция, устанавливающая точку возврата. Данная функция записывает все значения из регистров, чтобы при вызове longjmp вернуть всё в исходное положение.СкачатьПараметры:longjmp - функция, переходящая на установленную точку: изменяет значения регистров на исходные.
- env[JmpBuf] - массив для хранения указателей.
- &retval - ссылка на переменную, в которую будет записано значение из функции longjmp.
Параметры:Пример использования функций:
- env[JmpBuf] - массив для хранения указателей.
- val - возвращаемое значение.
PHP Code:
new jmp[JmpBuf];
main() {
new ret;
setjmp(jmp, ret);
if (ret < 10) {
somefunc(ret);
}
}
somefunc(ret)
{
printf("%d", ret);
longjmp(jmp, ++ret);
}
githubУстановка
- Перейдите в репозиторий на github (ссылка выше).
- Для скачивания на открывшейся странице нажмите на кнопку "Clone or download" (зелёного цвета) и в открывшемся меню - "Download ZIP".
- Все файлы библиотеки перемести в папку '/pawno/includes/'.
- Скомпилировать изменённые вами скрипты.
Автор: VVWVV
Распространяется по лицензии zlib.