4.5. Functions¶
-
FunctionDeclaration <-¶FunctionSignature';' Compile-time Behavior:
Provides a declaration of a function with the name, return type, and arguments specified by the signature, but does not specify any behavior. This is generally used as part of an API boundary.
Runtime Behavior:
A function declaration has no runtime behavior.
-
FunctionDefinition <-¶FunctionSignatureBlock Compile-time Behavior:
Provides the actual behavior of a function, which may have been declared previously or may not. If the function was declared in some
.hrofile which wasincluded, the function must be exported and available for external use in the compiler’s output. Otherwise, the function should not be exported.If the function signature specifies a return type other than
void, but there are paths through the block that do not execute aReturnStatement, the compiler must give an error.Runtime Behavior:
When the function is called, the arguments must be populated and the block must be executed.
-
FunctionSignature <-¶Typeidentifier'('SignatureArguments?')' -
SignatureArguments <-¶Typeidentifier(','Typeidentifier)*','? Compile-time Behavior:
A function signature specifies the return type, name, and arguments of a function.
Runtime Behavior:
A function signature has no runtime behavior.