SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian > Релизы/Releases

Reply
 
Thread Tools Display Modes
Old 11/08/2017, 02:56 PM   #1
VVWVV
Big Clucker
 
VVWVV's Avatar
 
Join Date: Jun 2015
Location: Russia
Posts: 120
Reputation: 63
Lightbulb TDW CJump - переходы между функциями

TDW CJump
Описание
Добавляет возможность нелокальных переходов. В Pawn есть оператор goto, который позволяет перейти абсолютно в любое место в функции, однако с помощью данного оператора невозможен переход между функциями.
Документация
setjmp - функция, устанавливающая точку возврата. Данная функция записывает все значения из регистров, чтобы при вызове longjmp вернуть всё в исходное положение.
Параметры:
  • env[JmpBuf] - массив для хранения указателей.
  • &retval - ссылка на переменную, в которую будет записано значение из функции longjmp.
longjmp - функция, переходящая на установленную точку: изменяет значения регистров на исходные.
Параметры:
  • env[JmpBuf] - массив для хранения указателей.
  • val - возвращаемое значение.
Пример использования функций:
PHP Code:
new jmp[JmpBuf];

main() {
    new 
ret;
    
setjmp(jmpret);

    if (
ret 10) {
        
somefunc(ret);
    }
}

somefunc(ret)
{
    
printf("%d"ret);
    
longjmp(jmp, ++ret);

Скачать
github
Установка
  1. Перейдите в репозиторий на github (ссылка выше).
  2. Для скачивания на открывшейся странице нажмите на кнопку "Clone or download" (зелёного цвета) и в открывшемся меню - "Download ZIP".
  3. Все файлы библиотеки перемести в папку '/pawno/includes/'.
  4. Скомпилировать изменённые вами скрипты.
Автор: VVWVV
Распространяется по лицензии zlib.
VVWVV is offline   Reply With Quote
Old 11/08/2017, 03:58 PM   #2
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,468
Reputation: 66
Default Re: TDW CJump - переходы между функциями

Новый вид костылей.
__________________
White_116 is offline   Reply With Quote
Old 11/08/2017, 04:01 PM   #3
VVWVV
Big Clucker
 
VVWVV's Avatar
 
Join Date: Jun 2015
Location: Russia
Posts: 120
Reputation: 63
Default Re: TDW CJump - переходы между функциями

Quote:
Originally Posted by White_116 View Post
Новый вид костылей.
Старый) Это фича уже давно в Сях же есть.
VVWVV is offline   Reply With Quote
Old 17/08/2017, 04:24 PM   #4
GuilhermeNunes
Gangsta
 
Join Date: Feb 2017
Posts: 586
Reputation: 8
Default Re: TDW CJump - переходы между функциями

?? Que lingua estranha й essa??!
GuilhermeNunes is offline   Reply With Quote
Old 20/10/2017, 09:17 PM   #5
Sanya4
Little Clucker
 
Join Date: Jun 2015
Posts: 36
Reputation: 4
Default Re: TDW CJump - переходы между функциями

У тебя не все регистры сохраняются. Например pri и alt.
Sanya4 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Include] TDW CJump - nonlocal gotos in Pawn VVWVV Includes 2 11/08/2017 11:32 AM
Проблема замера скорости по разнице между координатами, полученными в соседних по времени OnPlayerUpdate Mutha_X Русский/Russian 5 05/06/2017 06:18 PM
Как связать несколько таблиц между собой? JM_Millers Русский/Russian 6 28/05/2014 08:25 AM


All times are GMT. The time now is 04:50 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.