Синтаксис
Procedure[.<тип данных>] <имя процедуры> (<переменная1>[,<переменная2>,...]) ... [ProcedureReturn <результирующее значение>] EndProcedure
Описание
Процедуры объявляемые оператором Procedure служат для группировки повторяющихся частей программы, с целью упрощения её структуры. В языке PureBasic, процедуры могут иметь аргументы (выступать в роли функций), а также, собственные переменные, и вызываться из любой части программы по своему имени. Если процедура имеет передаваемые аргументы, то они указываются при её вызове, в круглых скобках. Допускается вызов одной процедуры из тела другой (вложенные вызовы процедур). Для получения доступа к переменным находящимся вне тела процедуры, необходимо использовать операторы Shared или Global. Процедуры могут возвращать в тело программы результирующее значение (в случае необходимости), которое указывается после оператора ProcedureReturn и может являться, как переменной, так и константой. Конструкция должна завершаться оператором EndProcedure.
Например :
Procedure.l Максимум(nb1.l, nb2.l) If nb1>nb2 Результат.l = nb1 Else Результат = nb2 Endif ProcedureReturn Результат EndProcedure Результат.l = Максимум(15,30) PrintNumberN(Результат) End
Синтаксис:
Global <переменная> [,<переменная>,...]
Описание:
Оператор Global служит для объявления переменных в глобальной области видимости. Объявленные переменные становятся доступными не только в теле программы, но и внутри процедур.
Например :
Global a.l, b.b, c, d
Синтаксис
Shared <переменная> [,<переменная>,...]
Описание
Оператор Shared служит для объявления разделяемых переменных. Объявленные переменные будут доступны для изменения в теле процедуре, при условии, что они были ранее объявлены в теле программы.
Например :
a.l = 10 Procedure Модификация() Shared a a = 20 EndProcedure Модификация() PrintNumberN(a) ; Оператор 'PrintNumberN' выведет число 20, т.к. переменная "a" ; была объявлена разделяемой и изменена в процедуре 'Модификация()'. End