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

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

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

Ответить
itwork
новенький
Сообщения: 41
Зарегистрирован: 28.12.2006 13:32:28

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

Сообщение itwork »

Код: Выделить всё

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

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


ВОЖМОЖНО ЛИ ТАКОЕ? Если да то как сделать?
SAK
постоялец
Сообщения: 158
Зарегистрирован: 17.02.2006 23:45:14
Откуда: Тим
Контактная информация:

Сообщение SAK »

Никак! Надо перестроить код так, чтобы такой необходимости не возникало.
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

см. 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;
Или раздробить (или объединить) функции так, чтобы не было необходимости прыгать из одной в другую...
SAK
постоялец
Сообщения: 158
Зарегистрирован: 17.02.2006 23:45:14
Откуда: Тим
Контактная информация:

Сообщение SAK »

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

В данном случае это никак не подходит т.к. itwork желает войти в функцию минуя её инициализацию, что в Паскале недопустимо ни при каких обстоятельствах.
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

А просто вызвать ту функцию слабо? :x
Ответить