Declaration Declare LinkageDeclares a module-level or member procedure. SubSpecifies a procedure that does not return an argument. FunctionSpecifies a procedure that returns an argument. OverloadSpecifies that the procedure name can be used in other procedure declarations. StaticSpecifies static storage for all variables and objects in the procedure body. Const (Member)Specifies a const member procedure in user-defined type definitions. Static (Member)Specifies a static member procedure in user-defined type definitions. Public Calling conventionsSpecifies external linkage for a procedure. PrivateSpecifies internal linkage for a procedure. AliasSpecifies an alternate external name for a procedure. ExportSpecifies a procedure is to be exported from a shared library. LibSpecifies automatic loading of a library. | Parameter passing conventions ByRef Variadic ProceduresSpecifies passing an argument by reference. ByValSpecifies passing an argument by value. AnyDisables type-checking on arguments. ... (Ellipsis) Automatic executionIndicates a variadic procedure in a declaration. va_firstMacro to obtain the argument list in a variadic procedure. va_argMacro to obtain the current argument in a variadic procedure. va_nextMacro to move to the next argument in a variadic procedure. Constructor (Module) MiscellaneousIndicates a procedure is to be executed before module-level code. Destructor (Module)Indicates a procedure is to be executed after module-level code. Byref (Function Results) Specifies that a function returns by reference rather than by value. CallInvokes a procedure. NakedSpecifies that a function body is not to be given any prolog/epilog code |