[Include] TDW CJump - переходы между функциями - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (
https://sampforum.blast.hk/forumdisplay.php?fid=32)
+----- Forum: Релизы/Releases (
https://sampforum.blast.hk/forumdisplay.php?fid=66)
+----- Thread: [Include] TDW CJump - переходы между функциями (
/showthread.php?tid=639095)
TDW CJump - переходы между функциями -
VVWVV - 11.08.2017
TDW CJump
ОписаниеДобавляет возможность нелокальных переходов. В Pawn есть оператор goto, который позволяет перейти абсолютно в любое место в функции, однако с помощью данного оператора невозможен переход между функциями.
Документацияsetjmp - функция, устанавливающая точку возврата. Данная функция записывает все значения из регистров, чтобы при вызове longjmp вернуть всё в исходное положение.Параметры:- env[JmpBuf] - массив для хранения указателей.
- &retval - ссылка на переменную, в которую будет записано значение из функции longjmp.
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.
Re: TDW CJump - переходы между функциями -
White_116 - 11.08.2017
Новый вид костылей.
Re: TDW CJump - переходы между функциями -
VVWVV - 11.08.2017
Quote:
Originally Posted by White_116
Новый вид костылей.
|
Старый) Это фича уже давно в Сях же есть.
Re: TDW CJump - переходы между функциями -
GuilhermeNunes - 17.08.2017
?? Que lingua estranha й essa??!
Re: TDW CJump - переходы между функциями -
Sanya4 - 20.10.2017
У тебя не все регистры сохраняются. Например pri и alt.