16.1 Writing Functions

Functions may be written in the usual way in accordance with the C/C++ language.

The only specifier that has any effect on functions is static. Interrupt functions are defined with the use of the interrupt attribute, see 16.2 Function Attributes And Specifiers.

A function defined using the static specifier only affects the scope of the function, i.e., limits the places in the source code where the function may be called. Functions that are static may only be directly called from code in the file in which the function is defined. The equivalent symbol used in assembly code to represent the function may change if the function is static, see 9.2.2 Static Variables. This specifier does not change the way the function is encoded.