как перепригнуть на другую фунцию?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

как перепригнуть на другую фунцию?

Сообщение itwork » 27.01.2007 22:15:17

Код: Выделить всё
Function nomer1:integer;
Begin
             . . .
           как например отсюда перепрыгнуть в другую функцию?
           незаканчивая следующих действиЙ в этой функции
             . . .
End;

Function nomer2:Real;
Begin
             . . .
            Вот перепригнуть СЮДА
             . . .
End;


ВОЖМОЖНО ЛИ ТАКОЕ? Если да то как сделать?
itwork
новенький
 
Сообщения: 41
Зарегистрирован: 28.12.2006 14:32:28

Сообщение SAK » 27.01.2007 23:36:45

Никак! Надо перестроить код так, чтобы такой необходимости не возникало.
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим

Сообщение shade » 27.01.2007 23:39:19

см. setjmp/longjmp
но лутше постараться обойтись без них
лутше использовать "конечные автоматы"
procedure A(state: Integer);
begin
case state of
1: doA1;
2: doA2;
3: doA3;
end;
end;

procedure B;
begin
A(1);
doB1;
A(2);
doB2;
A(3);
end;
Или раздробить (или объединить) функции так, чтобы не было необходимости прыгать из одной в другую...
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение SAK » 28.01.2007 00:05:58

shade писал(а):см. setjmp/longjmp

В данном случае это никак не подходит т.к. itwork желает войти в функцию минуя её инициализацию, что в Паскале недопустимо ни при каких обстоятельствах.
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим

Сообщение Cheb » 28.01.2007 20:11:10

А просто вызвать ту функцию слабо? :x
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru