## Storage classes

Variables can be either automatically or statically allocated.

Local variables and function parameters are truly `auto` entities: They are allocated on the data stack (which is distinct from return stack). It means that (unlike several pic C compilers) cpik can compile recursive algorithms12, and can be used to produce re-entrant code.

#### Footnotes

... algorithms 12
  However, remember that the hardware stack is limited to 31 levels.