Процедуры
 
Ключевые слова, которые работают с процедурами.

Описание

Эти ключевые слова управляют объявлением и определением процедур на уровне модуля. Так же управляют элементами процедур, как они вызываются, какие переданы параметры, а так же управляют видимостью по отношению к другим модулям. Процедуры могут декларироваться перед выполнением любого участка кода , но до выполняемых участков кода самой процедуры.

Декларация
Ключевые слова, которые объявляют и определяют процедуры.
Линковка
Ключевые слова, которые определяют, как имена процедур видны во внешних модулях.
Конвенции вызовов
Ключевые слова, которые определяют, как аргументы используются при вызове процедуры.
Передача параметров конвенции
Ключевые слова, которые определяют, как аргументы передаются в процедуру.
Variadic процедуры
Макросы, которые позволяют передавать произвольное число аргументов в процедуру.
Автоматическое исполнение
Ключевые слова, которые определяют автоматическое выполнение процедур.
Разное
Разные ключевые слова.

Декларация
Declare
Объявляет процедуру на уровне модуля или элемента.
Sub
Определяет процедуру, которая не возвращает аргумент.
Function
Определяет процедуру, которая возвращает аргумент.
Overload
Указывает, что имя процедуры может быть использовано в других описаниях процедур.
Static
Определяет статическую память для всех переменных и объектов в теле процедуры.
Const (Пользовательский)
Определяет процедуру , которая указывает на константный метод доступа к элементам пользовательского типа.
Static (Пользовательский)
Определяет статическую процедуру в пользовательском типе.

Линковка
Public
Определяет внешние связи для процедуры.
Private
Определяет внутренние связи для процедуры.
Alias
Определяет альтернативное внешнее имя для процедуры.
Export
Определяет что процедура будет экспортироваться из разделяемой библиотеки.
Lib
Определяет автоматическую загрузку библиотеки.

Конвенции вызовов
stdcall
Задает стандартное соглашение о вызовах для основных языков, включая FreeBASIC.
cdecl
Определяет стандартное соглашение о вызове языков С и С++
pascal
Определяет стандартное соглашение о вызове языков Fortran, Pascal и Microsoft QuickBASIC / QBasic
Передача параметров конвенции
ByRef
Определяет передачу аргумента по ссылке.
ByVal
Определяет передачу аргумента по значению.
Any
Отключает проверку типов аргументов.

Variadic процедуры
... (Многоточие)
Указывает на VARIADIC процедуру в декларации.
va_first
Макрос получает список аргументов в VARIADIC процедуре.
va_arg
Макрос для получения текущего аргумента в VARIADIC процедуре.
va_next
Макрос для перехода к следующему аргументу в VARIADIC процедуре.

Автоматическое исполнение
Constructor (Модуль)
Указывает на то , что процедура должна быть выполнена до кода на уровне модуля.
Destructor (Модуль)
Указывает на то , что процедура должна быть выполнена после кода на уровне модуля.

Разное
Byref (Результаты функций)
Указывает, что функция возвращает значение по ссылке, а не по значению.
Call
Вызывает процедуру.
Naked
Показывает, что тело функции не имеет кода пролога / эпилога