12.2. Nesting functions
GCC permits functions to be defined within other functions.
Functions defined like this are known as nested functions and obey the
same scoping rules as variables. When the parent function exits, the
child function falls out of scope and is unavailable.