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