Декларирует процедуру на уровне модуля или как элемент типа\класса
Синтаксис
Параметры
param_list
В скобках через запятую список параметров.
return_type
name
Название или символ процедуры.
op_symbol
Название или символ оператора.
T
Имя нового пользовательского типа.
Описание
Заявление
Declare декларирует
Sub,
Function,
Operator,
Constructor,
или
Destructor. Мы будем
обращаться к одному из них, как обычно.
Подпрограммы могут быть переданы в коде не видя его определения, хотя оно
должно быть определено где-то. По существу,заявление
Declare
вносит процедуру и заявляет, что его определение находится в другом месте.
Например функция может продекларирована в верхней части модуля исходника,
далее вызываться, и еще ниже определяться в нижней части исходного файла,
как показано ниже в примере.
Обычно декларация практически идентична первой линии определения, за
исключением предшествующего ключевого слова
Declare и она не
имеет тела. Кроме того атрибуты, такие как
Export
запрещены в декларации.
FreeBASIC, как QB, не требует декларации функций, если функции не определены в
другом исходном файле или функции не находятся ниже точки вызова. Это не
актуально для подпрограмм, объявленных внутри тела
Type,
которые должны быть
всегда продекларированы в теле
Type
перед использованием. Если вы не продекларируете процедуры в теле
Type
, вы получите сообщение об ошибке.
Каждый файл , использующий функции должен иметь свою декларацию. Декларации
обычно хранятся в одном или более
включаемых файлах чтобы разрешить
использование функции из любого модуля, который использует
#include
для включения.
Пример
Функция на уровне модуля:
'' Декларируем функцию sum,
которая принимает два Integer и возвращает integer
Declare Function sum( As Integer, As Integer ) As Integer
Print "the sum of 420 and 69 is: " & sum( 420, 69 ) '' Вызов
функции sum
'' Определяем
функцию sum, которая принимает два
Integer и возвращает integer
Function sum( a As Integer, b As Integer ) As Integer
Return a + b
End Function
Процедура на уровне типа:
Type my_type
my_data As Integer
Declare Sub increment_data( )
End Type
Sub my_type.increment_data( )
my_data += 1
End Sub
Dim As my_type an_instance
an_instance.my_data = 68
an_instance.increment_data( )
Print an_instance.my_data
Различия диалектов
Отличия от QB
- В FreeBASIC, имена параметров являются необязательными.
См. также