3.7 이박사와 함께 생각하는 C 언어 : 함수와 레스토랑 사장님
함수가 동작하는 원리는 간단합니다. 함수를 호출하고 호출한 함수로 이동하여 함수에 정의된 동작을 수행하고, 완료 시 호출했던 곳으로 다시 넘어와서 순차적으로 작업을 수행하는 것입니다.
구조적 프로그래밍을 하려면 프로그래밍 단위를 함수로 나눠서 처리하는 것이 효율적입니다. 하지만 함수를 호출하고 수행하는 과정에서는 함수 호출 상태의 메모리 레지스터(register, CPU 내부에 있는 연산 가능한 메모리)를 저장하고 복구하는 실행 시간의 오버헤드(overhead, 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간이나 메모리)가 발생합니다.
참고로 아주 간단한 일은 함수를 호출해서 수행하는 것보다 함수의 내용을 main() 함수에서 직접 수행하는 것이 실행 시간 관점에서는 더욱 효율적일 수 있습니다.