2015-05-06 5 views
3

Я хотел бы, чтобы иметь возможность структурировать мой код для моего проекта установки Inno, но я вынужден перемещать код, потому что вы не можете вызвать функцию, если она не определена в первую очередь.Можете ли вы определить прототип функции в Inno Setup

Есть ли способ объявить прототип вверху, чтобы я не получил ошибку «Неизвестный идентификатор» и чтобы я мог структурировать свой код в логических блоках.

ответ

5

В Паскале (в том числе Pascal Script, используемый в программе установки Inno), можно определить прототип функции (ака вперед декларации), используя ключевое слово forward:

procedure ProcA(ParamA: Integer); forward; 

procedure ProcB; 
begin 
    ProcA(1); 
end; 

procedure ProcA(ParamA: Integer); 
begin 
    { some code } 
end; 

См Forward declared functions.

+0

К сожалению, ссылки документации меняются при изменении нумерации документа. «Вперед объявленные функции» теперь находится в разделе 14.7 по адресу: http://www.freepascal.org/docs-html/ref/refse93.html#x184-20600014.7. Я задавался вопросом, должен ли я включать все параметры в прямую ссылку или только имя функции. На примере в документации мне нужно включить параметры. –

+0

Спасибо. 1) Я исправил ссылку. 2) Конечно, вам нужно включить параметры. Вот в чем смысл декларации. Я добавил параметр к примеру. –

+0

Я предполагаю, что компилятор может быть написан так, что когда он увидит «вперед», он просто с нетерпением ждет полного объявления с параметрами. Обновленный пример помогает уточнить, что ему нужна полная декларация «впереди». –

 Смежные вопросы

  • Нет связанных вопросов^_^