Function variables are special type variables that refer to actual functions. With function variables a function can be passed as an argument to another function, array of function pointers can be created (call tables), or a function name can be aliased for other purposes.
Physically the function variables are integer variables that contain the memory address of the referred function. When a function variable is written to, an integer value is stored. That value is assumed to be a start address of a function. When read, a function variable simply calls the referred function.