One of the most important mechanisms for programmers to understand is the function call stack (sometimes referred to as the program execution stack). This data structure—working “behind the scenes”—supports the function call/return mechanism. It also supports the creation, maintenance and destruction of each called function’s automatic variables. As we’ll see in Figs. 6.14–6.16, last-in, first-out (LIFO) behavior is exactly what a function needs in order to return to the function that called it.